for循环用于所有可能的字母组合+范围内的数字

时间:2016-07-06 15:56:14

标签: python

我需要一个可以接受输入的for循环,比如说5,并且遍历所有可能的5个大写/小写/数字/特殊长度组合,并对每一个做一些事情,这可能吗?我不想将它们存储在内存中,只是迭代它们然后去除它。

另外,我如何才能完成每种类型的字符集..字母......数字等...

1 个答案:

答案 0 :(得分:1)

  

我需要一个可以接受输入的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