如何制作一个连续的字母列表python(从az然后从aa,ab,ac等)

Seb*_*Seb 12 python excel enumerate

我想为类似于excel工作表的应用程序制作一个按字母顺序排列的列表.

用户将输入多个单元格,我想生成列表.例如,用户需要54个单元格.然后我会生成

'a','b','c',...,'z','aa','ab','ac',...,'az','ba','bb'

我可以从[ref]生成列表

 from string import ascii_lowercase
 L = list(ascii_lowercase) 
Run Code Online (Sandbox Code Playgroud)

我如何将它拼接在一起?这里有一个类似的PHP问题.有人有python等价吗?

Kev*_*vin 27

使用itertools.product.

from string import ascii_lowercase
import itertools

def iter_all_strings():
    for size in itertools.count(1):
        for s in itertools.product(ascii_lowercase, repeat=size):
            yield "".join(s)

for s in iter_all_strings():
    print(s)
    if s == 'bb':
        break
Run Code Online (Sandbox Code Playgroud)

结果:

a
b
c
d
e
...
y
z
aa
ab
ac
...
ay
az
ba
bb
Run Code Online (Sandbox Code Playgroud)

这具有超越两个字母组合的额外好处.如果你需要一百万个字符串,它会愉快地给你三个,四个和五个字母串.


奖金样式提示:如果你不喜欢break在底部循环中有明确的内部,你可以使用islice它来自行终止循环:

for s in itertools.islice(iter_all_strings(), 54):
    print s
Run Code Online (Sandbox Code Playgroud)