python 编写排列组合

时间:2023-03-09 07:30:11
python  编写排列组合

python在编写排列组合是会用到  itertools 模块

排列

import itertools
mylist = list(itertools.permutations(['A','B','C','D'],)) # 全排列
print(mylist)
mylist1 = list(itertools.permutations(['A','B','C','D'],)) # 4个里面选3个排列
print(mylist1) #!=****
#!=
#M个选N个 M!/(M-N)!
# !/!=
# !/!=*=
# !/!=

组合

import itertools
mylist = list(itertools.combinations(['A','B','C','D'],)) # 组合
print(mylist)
mylist1 = list(itertools.combinations(['A','B','C','D'],)) # 4个里面选3个组合
print(mylist1) #['A','B','C','D'],) 4个取3个,无序
#M!/N!(M-N)!

可以重复的排序(类似密码)

import itertools
# product 可以重复的排序
# mylist1 = list(itertools.product("",repeat=)) 参数表示可以重复的从前面的0到9里面取出4个数字来
# print(mylist1)
mylist=(["".join(x) for x in itertools.product("",repeat=) ])
print(mylist)
print(len(mylist))

利用生成器可以跌代的生产密码,节约内存

#百度云,输入密码   _  _  _  _
import itertools
# product 可以重复的排序
mylist=("".join(x) for x in itertools.product("",repeat=))
print(next(mylist))
print(next(mylist))
print(next(mylist))
print(next(mylist))