我需要一个 for 循环,它可以接受输入,比如 5,并遍历所有可能的 5 种大写/小写/数字/特殊长度组合,并对每个组合做一些事情,这可能吗?我不想将它们存储在内存中,只是迭代它们,然后摆脱它。
另外,我将如何只做每种类型的字符集..字母..数字等。
我需要一个 for 循环,它可以接受输入,比如 5,并遍历所有可能的 5 种大写/小写/数字/特殊长度组合,并对每个组合做一些事情
为此,您可能需要使用itertools.product()
import string
import itertools
alphabet = string.digits + string.letters + string.punctuation
for password in itertools.product(alphabet, repeat=5):
print ''.join(password)
或者,根据注释改编代码:
from string import ascii_lowercase
from itertools import product
keywords = (''.join(i) for i in product(ascii_lowercase, repeat = 3))
for keyword in keywords:
print keyword