python代码
# -*- coding: utf-8 -*-
f = open("E:\\dict.txt", "w",encoding="utf-8")
chars = [
'0','1','2','3','4','5','6','7','8','9'
]
chars1 = [
'0','1','2','3','4','5','6','7','8','9',
'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',
]
type=int(input("请选择密码类型:1——只有数字;2——数字和字母的组合\n"))
length=int(input("请输入密码长度\n"))
if type == 1:
base = len(chars)
end = len(chars) ** length
array = [0 for x in range(0,end)]
for i in range(0, end):
n = i
a=length
array[0]=chars[n % base]
while a:
n = n // base
array[length+1-a] = chars[n % base]
a=a-1
for j in range(0,length):
f.write(array[j])
#逆序输出
for s in range(0,length)[::-1]:
print(array[s],end="")
print()
else:
base = len(chars1)
end = len(chars1) ** length
print(end)
array = [0 for x in range(0,end)]
for i in range(0, end):
n = i
a=length
array[0] = chars1[n % base]
while a:
n = n // base
array[length+1-a] = chars1[n % base]
a = a - 1
for j in range(0,length):
f.write(array[j])
for s in range(0,length)[::-1]:
try:
print(array[s],end="")
except:
continue
print()
f.close()
另:
生成的字典文件可能会有乱码,用notepad++打开生成的字典文件就行了。这个问题好像是windows编码的问题,我在百度上查到的解决方法大都是打开文件时指定编码方式,但是并没有什么用。
参考博客:https://blog.csdn.net/weixin_43915762/article/details/88085389