如何从“09 AZ”按顺序“自动生成”字符串

2024-06-28 19:38:18 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试从0-9和A-z自动生成字符串

00001-99999 A0001-A9999 B0001-B9999 Z9999-AA999型 AB001-ZZ999型 AAA01-

按顺序


Tags: 字符串顺序a0001ab001z9999zz999b0001a9999
1条回答
网友
1楼 · 发布于 2024-06-28 19:38:18

只需对函数进行递归调用

list=[]
for i in range(10):
    list.append(str(i))
for i in range(26):
    list.append(chr(ord('a')+i))
def all(pre,n):
    li=[]
    if n==1:
        for x in list:
            for p in pre:
                li.append(x+p)
        return li
    else:
        for x in list:
            for p in pre:
                li.append(x+p)
        return all(li,n-1)
print(all([''],2))

递归可能需要大量的时间来处理大量的数字,所以您也可以使用自己的数字系统来递增

class NumSys:
    def __init__(self):
        self.val=[0,0,0,0,0]
    def next(self):
        self.val[4]+=1
        for i in range(5):
            if self.val[4-i]>35:
                if i==4:
                    return None
                else:
                    self.val[4-i-1]+=1
                    self.val[4-i]-=35
    def __str__(self):
        stri=''
        for i in range(5):
            x=self.val[i]
            if x<10:
                stri+=str(x)
            else:
                stri+=chr(ord('a')+x-10)
        return stri

n=NumSys()
for i in range(100):
    print (str(n))
    n.next()

相关问题 更多 >