2017-12-18 14 views
1

이 코드가 더 잘 수행하고 내가 itertools.permutations 및 itertools.chain를 사용해야한다고 생각itertools : 2 차원 반복자

def get_permutations(): 
out = [] 
for a in range(0,6): 
    for b in range(0, 6): 
     for c in range(0, 6): 
      for d in range(0, 6): 
       for e in range(0, 6): 
        for f in range(0, 6): 
         out.append([a,b,c,d,e,f]) 
return out 

더 파이썬 수 있도록 itertools를 사용하려고하지만, 난을 만들 목록 또는 반복자와 같은 결과를 얻으려면 이들을 함께 모으는 방법을 모릅니다. itertools를 사용하지 않는 다른 솔루션이 있다면이를 고려해 보겠습니다.

+5

'itertools.product (range (6), repeat = 6)'이 아닌가요? https://docs.python.org/3/library/itertools.html#itertools.product – jonrsharpe

+0

이들은 순열이 아니라 jonsharpe가 언급 한 데카르트 제품입니다. itertools.product'를 사용하면 더 빠르게 만들지 만 알고리즘의 복잡성은 변하지 않을 것입니다 (여기서는 상당히 끔찍합니다). –

+0

@StefanPochmann은'range (6)'이 가변적이라고 가정합니다. 그렇지 않다면'itertools.product'를 사용하거나이 중첩 된 루프만으로는 큰 차이를 만들 수 없습니다. –

답변

1

itertools.combinations_with_replacement([0, 1, 2, 3, 4, 5], 6)을 찾고 계십니까? :)