python排列组合计算方法(Python实现的排列组合、破解密码算法示例)
类别:脚本大全 浏览量:2026
时间:2021-10-23 10:23:52 python排列组合计算方法
Python实现的排列组合、破解密码算法示例本文实例讲述了python实现的排列组合、破解密码算法。分享给大家供大家参考,具体如下:
排列组合(破解密码)
1.排列
|
itertools.permutations(iterable,n) |
参数一:要排列的序列,
参数二:要选取的个数
返回的是一个迭代对象,迭代器中的每一个元素都是一个元组
|
import itertools #概念:从n个不同元素中取出m(m≤n)个元素,按照一定的顺序排成一列,叫做从n个元素中取出m个元素的一个排列(arrangement)。特别地,当m=n时,这个排列被称作全排列(permutation) ''' 1 2 3 4 假设从中取出3个数字 123 132 213 231 321 312 ''' #需求:从[1,2,3,4]4个数中随机取出3个数进行排列 mylist = list (itertools.permutations([ 1 , 2 , 3 , 4 ], 3 )) print (mylist) print ( len (mylist)) ''' 规律总结: 4 - 3 24 4 - 2 12 4 - 1 4 排列的可能性次数:n! / (n-m)! ''' |
2.组合
|
itertools.combinations(iterable,n) |
参数一:可迭代对象
参数二:要选取的个数
返回值:返回一二迭代器,迭代器中的每一个元素都是一个元组
|
import itertools #概念:从m个不同的元素中,任取n(n≤m)个元素为一组,叫作从m个不同元素中取出n个元素的进行组合 ''' 1 2 3 4 5 中选4个数的组合方式有几种? ''' mylist = list (itertools.combinations([ 1 , 2 , 3 , 4 , 5 ], 4 )) print (mylist) print ( len (mylist)) ''' 规律总结: m n 5 - 5 1 5 - 4 5 5 - 3 10 5 - 2 10 5! 120/120(m-n)! 120/24(m-n)! 120/6(m-n)! m!/(n!x(m-n)!) ''' |
3.排列组合
|
itertools.product(iterable,repeat = 1 ) |
参数一:可迭代对象,参数二:重复的次数,默认为1
|
import itertools ''' _ _ _ _ _ ''' mylist = list (itertools.product( "0123456789qwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnm" , repeat = 6 )) #可以尝试10,有可能电脑会卡住 #多线程也不行,电脑内存不够,咋处理都白搭 #print(mylist) print ( len (mylist)) |
扩展:现在但凡涉及到密码,一般都会进行加密处理,常用的加密方式有md5,rsa,des等
4.疯狂破解密码
伤敌一千自损一万的破解方式
|
import time import itertools #mylist = list(itertools.product("0123456789", repeat=10)) passwd = (" ".join(x) for x in itertools.product(" 0123456789qwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbnm ", repeat = 6 )) #print(mylist) #print(len(mylist)) while true: #先直接实现,然后再添加异常 try : str = next (passwd) time.sleep( 0.5 ) print ( str ) except stopiteration as e: break |
希望本文所述对大家python程序设计有所帮助。
原文链接:https://blog.csdn.net/lm_is_dc/article/details/80174742
您可能感兴趣
- python线程池有几种(对python 多线程中的守护线程与join的用法详解)
- python 后台django(Python Django给admin添加Action的方法实例详解)
- python 常用模块函数(Python OOP类中的几种函数或方法总结)
- python 文件操作(Python File文件 方法整理)
- python机器人开发(python程序控制NAO机器人行走)
- python密码错误3次不能再输入(Python实现账号密码输错三次即锁定功能简单示例)
- python核心编程和python基础教程(从0开始的Python学习014面向对象编程推荐)
- python调用elasticsearch(Python-ElasticSearch搜索查询的讲解)
- python注册码实现(python实现Virginia无密钥解密)
- python用pyqt5制作登录界面(python3+pyqt5+itchat微信定时发送消息的方法)
- python 暗弱目标提取(Python提取频域特征知识点浅析)
- python使用门算法加密文件(python实现可逆简单的加密算法)
- 用python3.5.3实现邮件收发(Python使用POP3和SMTP协议收发邮件的示例代码)
- python读取文件的正确方法(强悍的Python读取大文件的解决方案)
- python散点图(python scatter散点图用循环分类法加图例)
- 用python做一个表白视频(python仿抖音表白神器)
- 8月23日11时16分将迎处暑,逐渐进入气象意义上的秋天(8月23日11时16分将迎处暑)
- 花不语 下 如果重来一次的话,你还会这么选择吗(花不语下如果重来一次的话)
- 城市记忆之上海 最难忘的是老弄堂里的市井味道(城市记忆之上海)
- 太鸡贼了,这老小区轻松搞定了停车问题(这老小区轻松搞定了停车问题)
- 太鸡贼了,这老小区轻松搞定了停车问题(这老小区轻松搞定了停车问题)
- 节日我在岗|警景相融 平安相伴(节日我在岗警景相融)
热门推荐
- 腾讯云主机可以挂游戏吗(云主机能挂网络游戏么?)
- vuex怎么使用数据(vuex的辅助函数该如何使用)
- docker本地项目生成镜像(docker images本地迁移的实现)
- 用css实现图片特效代码(HTML+CSS+JavaScript实现图片3D展览的示例代码)
- html语法规范解释(浅析HTML5 Landmark)
- react native web白屏(关于React Native 无法链接模拟器的问题)
- mysql的7种索引(浅入浅出 MySQL 索引)
- Sql Server锁的粒度
- php列表怎么用(PHP开启目录引索+fancyindex漂亮目录浏览带搜索功能)
- cssbackground(用 CSS background 实现刻度线的呈现)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9