在Python中遍历从a到zzz
我需要一个函数,它能生成一个字母列表,从a开始,一直到zzz。
应该是这样的:
a
b
c
...
aa
ab
ac
...
zzx
zzy
zzz
我现在的代码是这个:
for combo in product(ascii_lowercase, repeat=3):
print(''.join(combo))
不过,这个代码只会增加3个字母,输出的结果更像是:
a
ab
abc
abcd
...
所以,简单总结一下:我需要一个函数,让字母不断增加,当超过z的时候,就返回到aa。
谢谢!
更新:
我得到的输出和之前一样。这里是我想要插入的内容:
a = hashlib.md5()
for chars in chain(ALC, product(ALC, repeat=1), product(ALC, repeat=1)):
a.update(chars.encode('utf-8'))
print(''.join(chars))
print(a.hexdigest())
我的哈希结果是:
f1784031a03a8f5b11ead16ab90cc18e
但我期待的是:
415290769594460e2e485922904f345d
谢谢!
2 个回答
12
再加一个循环:
for x in range(1, 4):
for combo in product(ascii_lowercase, repeat=x):
print(''.join(combo))
输出结果如下:
a
...
aa
...
aaa
...
zzz
其中 ...
代表着有很多很多的组合。
8
from string import ascii_lowercase as ALC
from itertools import chain, product
for chars in chain(ALC, product(ALC, repeat=2), product(ALC, repeat=3)):
print(''.join(chars))
回应问题更新
我试了所有的方法,但就是无法得到你提到的 415290769594460e2e485922904f345d
,所以我不知道你是怎么计算出这个期望值的。
product : 1a431d62ddd9e78e1b22f8245ad945d0
permutations : 52d2529adf73975a4ca82bc7e25db4c6
combinations : 52bf3fcd925b2fdc1c52df70b7e33cbb
combinations_with_replacement : 421d5ff16fc211ae253fcc3e81eeb262