我正在制作一个程序,打印出所有字母和0-9号字母的所有排列。我想打印6,7,8或更多数字排列,但它在启动时表示内存错误。我使用python 3.7。它只适用于2位数的排列。
这是我的代码:
import itertools
from itertools import *
#Bruteforce 0.1
rlist = list()
n1 = 0
n2 = 1
num = int (input("length"))
mainlist = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9','0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'A', 'b', 'B', 'c', 'C', 'd', 'D', 'e', 'F', 'g', 'G', 'h', 'H', 'i', 'I', 'j', 'k', 'K', 'l', 'L', 'm', 'M', 'n', 'N', 'o', 'O','p', 'P','q', 'Q','r', 'R','s', 'S','t', 'T','u','U','v','V','w','W','x','X','y','Y','z','Z', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'A', 'b', 'B', 'c', 'C', 'd', 'D', 'e', 'F', 'g', 'G', 'h', 'H', 'i', 'I', 'j', 'k', 'K', 'l', 'L', 'm', 'M', 'n', 'N', 'o', 'O','p', 'P','q', 'Q','r', 'R','s', 'S','t', 'T','u','U','v','V','w','W','x','X','y','Y','z','Z']
perm = permutations((mainlist),num)
#Bugs incoming!
for i in list(perm):
p = ''.join(str(e) for e in i)
rlist.append(p)
print(p)
#this is not going to go down the way you think
while True:
if rlist[n1] == rlist[n2]:
del rlist[n1]
n2 = 1
elif n1 == num ** 124:
n1+1
n2 = n1+1
elif n1 != n2:
n2+1
发布于 2018-09-06 15:57:25
所以我设法使代码更短,现在它使用8位数,使主列表更短但我似乎无法获得所有排列,例如我只得到zZ而不是Zz或zz。所以我想得到所有可能的排列。有什么帮助吗?大家好
https://stackoverflow.com/questions/-100002570
复制相似问题