2013-10-28 15 views

Odpowiedz

18
import itertools 

A=[[1,2,3], 
[4,5,6], 
[7,8,9]] 

for P in itertools.permutations(range(len(A))): 
    print [A[p][i] for i,p in enumerate(P)] 

Drukuje:

[1, 5, 9] 
[1, 8, 6] 
[4, 2, 9] 
[4, 8, 3] 
[7, 2, 6] 
[7, 5, 3] 
+0

Thanks , to w perfekcyjnie orked. Czy ktoś mógłby wyjaśnić, jak to działa? – cmgerber

+3

Dla każdej kolumny i, wybiera wiersz p. Wszystkie są unikalne, ponieważ mają 0,1,2, ... Wszystkie p są wyjątkowe, ponieważ pochodzą z permutacji. itertools.permutations generuje wszystkie permutacje, więc iteruje przez wszystkie wybory. –