Python3.8 - 如何获得最小长度和最大长度的总组合

Python3.8 - How To get total combinations which can be made with min length and max length

我实际上正在制作一个工具,它需要 最小长度和最大长度,然后使用字符 ,然后在给定的条件下,它 将所有可能的组合写入一个单词列表,但是有没有办法使用最小长度、最大长度和字符数

来获得多少组合

我的密码是:

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

感谢您提前提供帮助!

给定 w 个字符,您可以创建 w**n 个长度为 n 的字符串。所以你正在寻找 w**min_length + ...... + w**max_length

此代码可以工作...

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))