python出力n個の要素の全配列
1328 ワード
data=[1,2]
def pailie(data):
output=[]
# ,
if len(data)==1:
return [data]
# n : , n-1 , :
for i in data:
data_c=data.copy() # ; , n-1
data_c.remove(i)
#
output+=[[i]+j for j in pailie(data_c)]
return output
print(pailie(data))
# res=[[(f,g) for f,g in zip(j,range(1,len(data)+1))] for j in pailie(data)]
data=[ i for i in range(9)]
# import numpy as np
# # array=np.array([3,2,1])
# for array in pailie(data):
# array=np.array(array)
# nixushu=sum([(j>array[i+1:]).sum() for i,j in enumerate(array)])
# print(nixushu)
#=============== ====== 8
from itertools import permutations
print(list(permutations(data)))
def in_l(listt,c ):
result=[]
n=len(listt)+1
for j in range(n):
b=listt.copy()
# print(b,c)
if c not in b:
b.insert(j,c)
if b not in result:
yield b
def pailie(data,listt=None):
data=[i for i in data]
if listt:
lenn=len(data)
else:
listt=[[i] for i in data]
lenn=len(data)-1
for i in range(lenn):
result=[]
for d in data:
for i in listt:
for b in in_l(i,d):
if b not in result:
result+=[b]
listt=result;
return result