Python3.8 — Как получить общее количество комбинаций, которые могут быть сделаны с минимальной длиной и максимальной длиной

#python #python-3.x #linux #itertools #word-list

#python #python-3.x #linux #itertools #список слов

Вопрос:

На самом деле я создаю инструмент, который принимает минимальную длину и максимальную длину, а затем символы для использования, а затем в заданных критериях он записывает все возможные комбинации в список слов, но есть ли способ узнать, сколько комбинаций можно создать, используя минимальную длину, максимальную длину и символы

Мой код:

 import itertools

min_len = int(input("Min Len: "))
max_len = int(input("Max Len: "))
characters = str(input("Characters To use: "))

for n in range(min_len, max_len   1):
    for xs in itertools.product(characters, repeat=n):
        word = ''.join(xs)
        print(f"Writing {word}")
 

Я на Python3.8, Linux

Заранее спасибо за помощь!

Комментарии:

1. Чтобы было ясно, вы просто хотите знать количество комбинаций?

Ответ №1:

Учитывая w символы, вы можете создавать w**n строки длины n . Итак, вы ищете w**min_length ...... w**max_length

Ответ №2:

Этот код будет работать…

 from itertools import chain, combinations
min_len = int(input("Min Len: "))
max_len = int(input("Max Len: "))
characters = str(input("Characters To use: "))
combination = list(chain.from_iterable(combinations(characters, i) for i in range(min_len, max_len 1)))
for comb in combination:
    print("".join(comb))