import os
from itertools import combinations, permutations
import numpy as np
defEveError(func):defIn():try:return func (),except Exception as e :import cgitb
cgitb.enable (format='text')return func (),#return Inreturn In
defsearch(name, mytype='any', trajectory_filename=r"/"):
file_list =[]for roots, dirs, files in os.walk(trajectory_filename):forfilein files:if name infile:
file_list.append(roots +'/'+file)if mytype =='any':return[e for e in file_list if mytype]else:return[e for e in file_list if mytype == e.split('.')[-1]]
@EveError
defRunAmm():
coders ='url,timeout = 10,allow_redirects = False,stearm = True,verfiy = False,headers = headers,proxies = proxy'defAmm(data, step):iflen(data)== step +1:print(data)returnelse:for i inrange(step,len(data)):
data[step], data[i]= data[i], data[step]# 让当前首位依次为后面的每一个数
Amm(data, step +1)# 递归后面的情况
data[step], data[i]= data[i], data[step]
data =[code for code in coders.split(',')]return Amm(data,0)print(RunAmm())
coders ='url,timeout = 10,allow_redirects = False,stearm = True,verfiy = False,headers = headers,proxies = proxy'defAmm(Range1=len(coders.split(',')), NumberOfCombinations=5):
m = Range1 - NumberOfCombinations +1
p =1for i inrange(1, NumberOfCombinations):
m *=(i + m)
p *=(i +1)return m / p
#字符串排列计算^^^^如果是做代码排列,明显有些不合适,排列数越大越不可能单机完成
constant_of_strings_length =len(coders.split(','))for i inrange(constant_of_strings_length):print(Amm(constant_of_strings_length,i))defelement_per_com(Range):returnlist(permutations(list(range(Range)),Range))#or list(combinations(example_list, 2) # 组合枚举计算print(element_per_com(8))
import os
from itertools import combinations, permutations
import numpy as np
import time
defEveError(func):defIn(*vars):try:return func(*vars)except Exception as e :import cgitb
cgitb.enable (format='text')return func (*vars)return In
defCallTime(func):defIn(*varc):
start = time.clock()
func(*varc)print( time.clock()- start )return func(*varc),return In
#@EveError
@CallTime
defsearch(name, mytype='any', trajectory_filename=r"/"):
file_list =[]for roots, dirs, files in os.walk(trajectory_filename):forfilein files:if name infile:
file_list.append(roots +'/'+file)if mytype =='any':return[e for e in file_list if mytype]else:return[e for e in file_list if mytype == e.split('.')[-1]]#print(search('PyPyCoder'))
@EveError
defRunAmm():
coders ='url,timeout = 10,allow_redirects = False,stearm = True,verfiy = False,headers = headers,proxies = proxy'defAmm(data, step):iflen(data)== step +1:print(data)returnelse:for i inrange(step,len(data)):
data[step], data[i]= data[i], data[step]# 让当前首位依次为后面的每一个数
Amm(data, step +1)# 递归后面的情况
data[step], data[i]= data[i], data[step]
data =[code for code in coders.split(',')]return Amm(data,0)#print(RunAmm())
coders ='url,timeout = 10,allow_redirects = False,stearm = True,verfiy = False,headers = headers,proxies = proxy'
@CallTime
defAmm(Range1=len(coders.split(',')), NumberOfCombinations=5):
m = Range1 - NumberOfCombinations +1
p =1for i inrange(1, NumberOfCombinations):
m *=(i + m)
p *=(i +1)return m / p
@CallTime
defPermutations(Range):return[np.array(list(permutations(list(range(Range)),i)))for i inrange(Range)]
@CallTime
@EveError
defCombinations(Range):return[np.array(list(combinations(list(range(Range)),i)))for i inrange(Range)][1:]
c =[]for i in Combinations(len(coders.split(',')))[0]:
c.append(len( i ))print(sum(c),i)