我想生成所有可能的替代数字和数字序列。例如
5j1c6l2d4p9a9h9q
6d5m7w4c8h7z4s0i
3z0v5w1f3r6b2b1z
NumberSmallletterNumberSmallletter 数字小写字母数字小写字母 数字小写字母数字小写字母 NumberSmallletterNumberSmallletter
我可以使用 16 个循环来完成,但这需要 30 多个小时(粗略的想法)。有什么有效的方法。我希望在python中会有。
最佳答案
您可以使用 itertools.product
生成所有 16
长案例:
import string, itertools
i = itertools.product(string.digits, string.ascii_lowercase, repeat=8)
j = (''.join(p) for p in i)
由于 i
是 tuples
的迭代器,我们需要将它们全部转换为 strings
(因此它们是您想要的格式).这是相对直接的做法,因为我们可以将每个 tuple
传递到一个 generator
并将这些元素join
在一起成为一个 string
.
我们可以通过多次调用 next()
来看到迭代器 (j
) 正在工作:
>>> next(j)
'0a0a0a0a0a0a0a0a'
>>> next(j)
'0a0a0a0a0a0a0a0b'
>>> next(j)
'0a0a0a0a0a0a0a0c'
>>> next(j)
'0a0a0a0a0a0a0a0d'
>>> next(j)
'0a0a0a0a0a0a0a0e'
>>> next(j)
'0a0a0a0a0a0a0a0f'
>>> next(j)
'0a0a0a0a0a0a0a0g'
关于python - 生成所有可能的交替数字和字母序列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47954890/