如何获得5个位置上有N个数字的所有字母数字组合

2024-04-27 02:22:09 发布

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

如何使用python,在5个位置的组合中获得所有带有N数字的字母数字组合。
角色可以重复。
其余(5-N)字符应为字母。
举例说明我的意思:

Number of digits = 1 should generate:  
aygd3
2afvd
jde6a

Number of digits = 2 should generate:  
ay5d3
2af8d
jde64

Number of digits = 3 should generate:  
a15d3
26f8d
jd464

Number of digits = 4 should generate:  
315d3
26f87
9d464  

Tags: of角色number字母数字字符generatedigits
1条回答
网友
1楼 · 发布于 2024-04-27 02:22:09

递归生成。 请注意,5/2组合的文件大小为117 MB
17 576 000值(10^2 * 26^3 * C(5,2)

data = 'abcdefghijklmnopqrstuvwxyz0123456789'

def genld(s, maxlen, digs, digcnt):
    le = len(s)
    if (le == maxlen):
        #print(s)
        my_file.write(s + "\n")
    else:
        lo = 0 if (maxlen - le > digs - digcnt) else 26
        hi = 26 if (digcnt == digs) else 36
        for i in range(lo, hi):
            genld(s + data[i], maxlen, digs, digcnt + i // 26)

my_file = open("out.txt", "w")
genld('', 5, 2, 0)
my_file.close()

相关问题 更多 >