# -*- coding: utf-8 -*-
import random
import zipfile#压缩包读取或追加
import sys
'''生成随机密码'''
class MyIterator:

    #设置密码字符,进行匹配,可加字母
    leeters='012345'
    #最大值
    max_values=0
    #最小值
    min_values=0
    #密码的位数
    def __init__(self,min_value,max_value):
        #初始化,每次运行从默认开始
        #self是类名,类本身
        #交换的位置,是为了一直使最大值大于最小值
        if min_value<max_value:
            self.min_value=min_value
            self.max_value=max_value
        else:
            self.min_value=max_value
            self.max_value=min_value
    #生成随机密码
    #声明方法
    def __iter__(self):
        #返回自己本身
        return self
        
    def __next__(self):
        '''使用最大值、最小值,需要生成的密码字符,来进行随机密码生成'''
        rst=str()
        #随机数最大数,+1防止二者相等
        for item in range(0,random.randrange(self.min_value,self.max_value+1)):
            #加载从哪里进行生成密码
            rst+=random.choice(MyIterator.leeters)
        return rst
    
#for p in MyIterator(5,6):
    #print(p)
def extract():
    zfile=zipfile.ZipFile('1.zip')
    for p in MyIterator(3,4):
        print(p)
        try:
            #path=文件解压,members=,pwd=密码
            zfile.extractall(path='.',pwd=str(p).encode('utf-8'))
            print('正确密码',p)
            sys.exit()
        except Exception as e:#不报错
            pass
        
extract()