在Python中遍历从a到zzz

5 投票
2 回答
4021 浏览
提问于 2025-04-18 06:42

我需要一个函数,它能生成一个字母列表,从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

撰写回答