生成字典

生成字典

import time
from itertools import product
# #列表排列组合
# k = [1, 2, 3]
# print(list(product(k, k)))
# print(list(product(k, repeat=3)))

#将数字补位至足够位数的字符串
def intadd(num,n):
    diff = n - len(str(num))
    if diff == 0:
        return str(num)
    elif diff > 0:
        str1 = str(num)
        for i in range(diff):
            str1 = "0" + str1
        return str1

#将所有单个字符放到一个列表中
def singlezifu():
    list=[]
    for i in range(33,127):
        list.append(chr(i))
    return list



#两个数字字符串组合,可以单独设置每个字符串的长度
def zuhe():
    with open('txt',mode='w') as f:
        for i in range(100):
            for j in range(100):
                f.write(intadd(i,2) + intadd(j,2) + '\n')


#将列表内元祖数据转变为字符串,返回新列表
def TupToStr(list):
    list3 = []
    for i in range(len(list)):
        n = ''
        for j in range(len(list[i])):
            m = str(list[i][j])
            n += m
        list3.append(n)
    return list3


#生成指定位数的密码字典
def main():
    x = int(input("你想测试几位数的密码:"))
    time_start = time.time()				#计时开始
    list0 = singlezifu()                      #单字符列表
    list1 = list(product(list0, repeat=x))      #对单字符排列组合
    list2 = TupToStr(list1)               #列表元祖转字符串

	#将列表的内容写到文件
     with open('txt3', mode='a' ) as f:
         for i in list2:
             f.write(i + '\n')
     time_end = time.time()

if __name__ == "__main__":
    main()
    print(time_end - time_start)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值