Python生成所有可能的长度为n的字符串[重复]


问题内容

这个问题已经在这里有了答案

生成所有可能的三个字母字符串的最佳方法是什么? (7个答案)

3年前关闭。

我正在学习道德黑客。我有密码的哈希键和crypt算法(sha256 /
sha512)。我想解析文件中的所有字符串,并检查密码的哈希是否与文件中每个字符串的哈希匹配。

生成的字符串可能包含小写字母,大写字母和数字。

有什么想法如何生成所有可能的长度为n的字符串,其中可能包含字母和数字?


问题答案:

这是使用[Python 3.Docs] ****
__
的一段代码
:itertools。

产品

*
iterables,重复=
1


请注意,生成的字符串数为62 ** length,因此出于测试目的,请为 length 使用 较小的值 : __

import string
import itertools


def generate_strings(length=3):
    chars = string.ascii_letters + string.digits  # "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"
    for item in itertools.product(chars, repeat=length):
        yield "".join(item)