我正在创建一个循环遍历字母表的脚本,之后添加一个新字母再次循环。 到目前为止,这是我的代码:
import string
for a in (string.ascii_letters + string.digits):
print (a)
for a in (string.ascii_letters + string.digits):
for b in (string.ascii_letters + string.digits):
print(a + b)
for a in (string.ascii_letters + string.digits):
for b in (string.ascii_letters + string.digits):
print(a + b)
for c in (string.ascii_letters + string.digits):
print(a + b + c)
执行此操作的更有效方法是什么?
最佳答案
itertools
模块可让您定义此类字符串的无限流。
import string
import itertools
def alphanumeric_strings():
for n in itertools.count():
for t in itertools.product(string.ascii_letters + string.digits, repeat=n):
yield ''.join(t)
for x in alphanumeric_strings():
print x
count
只是产生无限的整数流,从 1 开始计数,因此每次调用 product
时,您都会得到一个比最后的。对 join
的调用将像 ('a', 'B', '1')
这样的元组转换为字符串 aB1
。
关于Python:循环遍历字母表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30278539/