簡體   English   中英

如何從“0-9 AZ”按順序“自動生成”字符串

[英]How to “Auto Generate” String in Sequence from “0-9 A-Z”

我正在嘗試從 0-9 和 Az 自動生成字符串。

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

並按順序

只需遞歸調用 function。

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))

Recursor 可能會花費大量時間來處理大數字,因此您也可以讓自己的數字系統遞增。

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()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM