今日壁纸

背景

测试某活动页面接口参数是否可穷举。

需求

生成一个由0123456789ABCDEF组成的、固定位数的字符串,并穷举所有可能的结果。

思路

for循环嵌套

优点:好理解

缺点:要多少位就需要多少个循环嵌套,麻烦,且占内存。

导入第三方工具生成的字典

优点:直接使用,不用随时生成

缺点:需要第三方工具生成,且导入之后占内存

最终方案

Python自带的itertools迭代器,可以直接生成所需字典。

优点:高效、省内存(所谓“惰性计算”,就是在循环到某一字符的时候才计算到该字符,不会提前计算完所有数据存储在内存中。)

缺点:我居然才知道

itertools的几个可能有用的方法

itertools.accumulate(iterable [, func])

默认返回一个累加序列,设定func可以返回累乘等其他计算。

import itertools

data = [1, 2, 3, 4]

a = itertools.accumulate(data)

for aa in a:

print(aa)

输出

1

3

6

10

itertools.chain(*iterables)

需要连续遍历多个序列时可以用这个。

a = [1, 2, 3]

b = [4, 5, 6]

c = itertools.chain(a, b)

print(list(c))

输出

[1, 2, 3, 4, 5, 6]

itertools.combinations(*iterable, r*)

就是数学中的组合数,数学符号

,其中m为传入序列的元素个数,n为传入的第二个参数。

c = itertools.combinations('ABC', 2)

print(list(c))

输出

[('A', 'B'), ('A', 'C'), ('B', 'C')]

itertools.permutations(iterable, r)

就是数学中的排列数,数学符号

,其中m为传入序列的元素个数,n为传入的第二个参数。

c = itertools.permutations('ABC', 3)

print(list(c))

输出

[('A', 'B', 'C'), ('A', 'C', 'B'), ('B', 'A', 'C'), ('B', 'C', 'A'), ('C', 'A', 'B'), ('C', 'B', 'A')]

itertools.product(iterable, repeat=1)

本次使用的方法。

可以生成一个穷举序列,第一个参数为序列组成元素,四二个参数 repeat=2表示穷举两位。

c = itertools.product('123', repeat=2)

# print(list(c))

for i in c:

print(''.join(i))

输出

11

12

13

21

22

23

31

32

33

结局

c = itertools.product('0123456789ABCDEF', repeat=8)

# print(list(c))

for i in c:

print(''.join(i))

由此可以生成8位穷举字典。

由0123456789ABCDEF组成的8位穷举字典共有

个,也就是4294967296,接近43亿。所以8位几乎没有可能成功了

虽然成功生成穷举字典,但是目标参数是64位的,要是穷举完,需要1.158E+77次。

呵呵,拜拜。

python生成wifi字典_用Python自带的itertools生成穷举字典相关推荐

  1. python 读取wifi数据_通过Python实现WiFi测试数据分析

    通过 Python 实现 WiFi 测试数据分析 周春宇 [期刊名称] <通信电源技术> [年 ( 卷 ), 期] 2020(037)006 [摘要] Python 是一种面向对象的解释型 ...

  2. python使用列表推导式(list comprehension)和itertools生成浮点数列表

    python使用列表推导式(list comprehension)和itertools生成浮点数列表 目录 python使用列表推导式(list comprehension)和itertools生成浮 ...

  3. python 追加到字典_使用Python读取,写入和解析JSON

    JSON是用于数据交换的轻量级数据格式,可以很容易地被人类读取和写入,也可以由机器轻松解析和生成.它是一种完全独立于语言的文本格式.为了处理JSON数据,Python有一个名为的内置包json. 示例 ...

  4. python设置默认密码_使用Python生成随机密码的示例分享

    生成随机密码这件事情用python来干确实相当的方便,优美的string方法加上choice简直是绝配 make_password.py ###简单几行代码执行即可生成记不住的字符串### $ pyt ...

  5. python制作图片墙_利用python生成照片墙的示例代码

    PIL(Python Image Library)是python的第三方图像处理库,但是由于其强大的功能与众多的使用人数,几乎已经被认为是python官方图像处理库了.其官方主页为:PIL. PIL历 ...

  6. 在python中设置密码登录_在python中生成密码

    在python中生成密码 我想在python中生成一些字母数字密码. 一些可能的方法是: import string from random import sample, choice chars = ...

  7. python自动生成word报告_利用Python实现报告自动生成

    前几天,在网上看到一篇介绍利用Python组件实现MS word内容生成的文章.可能是很久没接触编码,感觉在技术领域变得有点孤陋寡闻了,看见一些实用的功能都觉的屌屌的.以前经常通过代码写Excel文件 ...

  8. 使用密码字典 和 Python自带的pywifi模块穷举WIFI密码

    俗话说"小时偷针,大时偷鸡",来告诉我们从小要养成良好的行为习惯.但是自从走上程序员这条路以后,学习变得枯燥,明明很有时间,"却变得没有时间了",总之学习效率特 ...

  9. python写魔兽世界脚本_用python bat写软件安装脚本 + HM NIS Edit自动生成软件安装脚本...

    2019-03-11更新:原来NSIS脚本也可以禁用64位文件操作重定向的! 1.在安装脚本的开始处定义 LIBRARY_X64. !include "MUI.nsh" !incl ...

  10. python自动生成分析报告_利用PYTHON全自动生成分析报告

    日常工作当中,特别是金融行业当中,有不少人的工作是提取数据,分析数据,得到可视化图表,并加入自已的研究分析结论,最终生成分析报告,并且有不少报告是定期生成,存在不少重复手工劳动.本文通过一个简单实例, ...

最新文章

  1. 前景背景分割——ostu算法的原理及实现 OpenCV (八)
  2. 从飞天到倚天 阿里云底层自研技术大爆发
  3. R语言attributes函数(获取属性、设置属性)、attr函数(改变一个属性)、structure函数(改变数据形状)实战
  4. NR 5G 网络功能之SMF
  5. hystrix 单独使用_Spring cloud微服务架构-Hystrix工作原理(微服务故障熔断)
  6. 开始学java咯!~~~
  7. php 值是否在数组里面,php怎么判断某值在不在数组中
  8. 计组—双端口与多模块存储器
  9. Java Singleton设计模式
  10. 幻侠修仙服务器维护,幻侠修仙常见问题_幻侠修仙问答_疑难解答_九游手机游戏...
  11. 【计算机组成原理】内存
  12. 温故而知新 js 的错误处理机制
  13. python画图小猪佩奇_用Python代码画小猪佩奇 Python简直太神奇了
  14. 贷中客群评级的场景实现,来试试这些多维的实操方法
  15. 电音中DJ/Producer/MC/EDM/Remix/Mix的名词解释(转)
  16. python运行后闪退_怎样让python运行完了不直接退出?
  17. 倒立摆控制系统matlab,单轴倒立摆控制系统设计及Matlab仿真毕业设计论文(资料4)...
  18. 大话拒绝服务攻击:DoS、DDoS、LDoS——“直男、舔狗和渣男”
  19. css实现一个三角形
  20. 【小程序】使用font-awesome字体图标的解决方案(图文)

热门文章

  1. learn the python the hard way习题26~30总结
  2. 新浪微博客户端(33)-显示头像上的认证类型
  3. SPOJ375 Query on a tree(LCT边权)
  4. 理解J.U.C中的ReentrantLock
  5. Object对象的内存布局学习总结
  6. springboot实现数据库读写分离的一款框架
  7. MySQL的条件判断函数
  8. bitcoin 源码解析 - 交易 Transaction(三) - Script
  9. JS 通过选择百度地图地址获取经纬度自动填充到文本框中的方法
  10. rsync内网服务器 推送和拉取公网代码配置