首页 > 解决方案 > 如何一个接一个地打印字母并扩展它

问题描述

我有我的字母表并希望它一个接一个地继续

举个例子:

"a"
"b"
"c"
...

当从“a”到“z”发生这种情况时,我希望我的代码添加一个字母。

举个例子:

"aa"
"ab"
"ac"
"ad"
...

并想问这是否适用于变量

编辑评论我的代码(现在):

import time


char_abc = "abcdefghijklmnopqrstuvwxyz"
char_ABC = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"

for i in char_abc:
    print(i)
    time.sleep(0.1)
    
for j in char_ABC:
    print(j)
    time.sleep(0.1)

# for a in char_abc + char_ABC: #
#   print(a)                    # This is only a test
#   time.sleep(0.1)             #

为了解决这个误解,我删除了 ord() 函数只处理变量的句子

标签: python

解决方案


您可以创建一个函数来生成字母表长度增加的笛卡尔积。

itertools.count用来跟踪从 1 开始的计数器,并在每次外循环重新启动时递增。然后内部循环负责通过以下方式生成实际的字母组合itertools.product

def cycle_abc():
    char_abc = "abcdefghijklmnopqrstuvwxyz"
    for i in itertools.count(1):
            for combo in itertools.product(char_abc, repeat=i):
                    yield "".join(combo)

for letters in cycle_abc():
    print(letters)

# a
# b
# c
# ...
# aa
# ab
# ac
# ...
# ba
# bb
# bc
# ...

推荐阅读