生成一定范围内的连续字符串

mu *_*u 無 2 python python-2.7

我想生成从"aaa"down 到 的所有字符串"zzz"。目前,我正在使用 3 个 for 循环来执行此操作,是否有更 Pythonic 的方法来执行此操作?

key_options = []
for n1 in range(ord('a'), ord('z')+1):
    for n2 in range(ord('a'), ord('z')+1):
        for n3 in range(ord('a'), ord('z')+1):
             key_options.append(chr(n1) + chr(n2) + chr(n3))
Run Code Online (Sandbox Code Playgroud)

Ash*_*ary 5

使用itertools.product和列表理解:

>>> from itertools import product
>>> from string import ascii_lowercase
>>> [''.join(p) for p in product(ascii_lowercase, repeat=3)]
['aaa', 'aab', 'aac', 'aad', 'aae', ..., 'zzv', 'zzw', 'zzx', 'zzy', 'zzz']
Run Code Online (Sandbox Code Playgroud)