首页 > 解决方案 > 如何用大写和小写字母打印每个 8 字母字符串?(在蟒蛇中)

问题描述

我的代码:

import time
letters = ["A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z"] 
passwd = ""
while True:
    for a in range(0,51):
        passwd+=letters[a]
        for b in range(0,51):
         
            passwd+=letters[b]
            for c in range(0,51):
          
                passwd+=letters[c]
                for i in range(0,51):
                 
                    passwd+=letters[i]
                    for d in range(0,51):
                       
                        passwd+=letters[d]
                        for e in range(0,51):
                            
                            passwd+=letters[e]
                            for f in range(0,51):
                               
                                passwd+=letters[f]
                                for j in range(0,51):
                                    
                                    passwd+=letters[j]
                                    print(passwd)
                                    time.sleep(0.1)
                                    passwd = ""

这就是我想要输出的:

AAAAAAAAA AAAAAAAB AAAAAAAZ ......... zzzzzzzx zzzzzzzy zzzzzzzz

我需要改变什么?

标签: pythonpython-3.x

解决方案


您的代码可以通过删除passwd-string 并print(letters[a]+letters[b]+...)在最里面的循环中执行来修复。
但是,有八个嵌套循环并不是很优雅,所以这里有一个替代方案:

import itertools
import time
from string import ascii_letters

for word in itertools.product(ascii_letters, repeat=8):
    print(''.join(word))
    time.sleep(0.1)

然后,如果时间太长,请按 Ctrl+c :)


推荐阅读