在 Python 密码破解器中使用 itertools

Using itertools in Python password cracker

我做了一个简单的密码破解器:

import string as s
import itertools as it

things = s.ascii_letters

for digits in range(2, 6):
    for combo in it.combinations(things, digits):
        output = ''.join(combo)
        print(output)

但它并没有打印出所有的可能性。

例如,这个程序给出的最后输出是:

VWXYZ

如果我有一个以“X”开头的密码,程序将无法找到它。

有什么办法可以解决这个问题吗?我的代码有什么问题?

使用 itertools.product()repeat 参数。使用 itertools.combinations() 不允许多次选择同一个字母:

import string as s
import itertools as it

things = s.ascii_letters

for digits in range(2, 6):
    for combo in it.product(things, repeat=digits):
        output = ''.join(combo)
        print(output)