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
您可能感兴趣
- pythonturtle库画图代码(用Python中的turtle模块画图两只小羊方法)
- python将一个字符串逆序输出(Python字符串逆序的实现方法一题多解)
- pythoncsv格式转换(Python把对应格式的csv文件转换成字典类型存储脚本的方法)
- 学python可以应用到哪些方面(学习python可以干什么)
- python常见知识点整理(Python基础知识点 初识Python.md)
- python之pil模块使用(Python3安装Pillow与PIL的方法)
- python3语法规则(详解Python3注释知识点)
- python字符串的拼接与分割(Python字符串通过'+'和join函数拼接新字符串的性能测试比较)
- python可以编写数据加密解密吗(python简单实现AES加密和解密)
- pythonpulp怎么使用(pyhanlp安装介绍和简单应用)
- python的条件判断和循环(对Python中的条件判断、循环以及循环的终止方法详解)
- python编写一个聊天机器人(不到20行代码用Python做一个智能聊天机器人)
- python群聊提示(python-itchat 统计微信群、好友数量,及原始消息数据的实例)
- python如何判断两个数组相同(Python实现的合并两个有序数组算法示例)
- 从零开始学activemq(ActiveMQ:使用Python访问ActiveMQ的方法)
- python列表的循环遍历使用教程(Python中使用遍历在列表中添加字典遇到的坑)
- 美国数十万加仑牛奶倒下水道怎么回事 原因曝光令人心痛(美国数十万加仑牛奶倒下水道怎么回事)
- 探索中国神秘文字(探索中国神秘文字)
- 重温《蜗居》 宋思明选中海藻为红颜知己,纯属巧合,与爱无关(宋思明选中海藻为红颜知己)
- 越南旅游攻略(越南旅游攻略自由行)
- 成都旅游攻略(成都旅游攻略自由行最佳线路)
- 给儿童吃什么最好(给儿童吃什么最好消化)
热门推荐
- mysql怎样建立索引(MySQL创建索引需要了解的)
- wamp环境下源码如何安装(从wamp到xampp的升级之路)
- idea向数据库中插入中文报错(Idea连接MySQL数据库出现中文乱码的问题)
- php 经典模式(php设计模式之装饰模式应用案例详解)
- mysql的binlog日志详解(MySQL 有关MHA搭建与切换的几个错误log汇总)
- dedecms标签怎么调用(DEDECMS自定义表单提交后的跳转链接修改方法)
- html标签session什么意思(在html页面中取得session中的值的方法)
- 宝塔如何通过ip访问网站(宝塔面板如何禁止“服务器IP地址”打开网站?)
- mysql各种备份方式(MySQL 逻辑备份与恢复测试的相关总结)
- nginx常见错误码(Nginx常见的错误配置举例)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9