Python все перестановки в списке

Привет, у меня есть список, в котором я хотел бы получить все его различные перестановки, то есть [A, B, C].

Я хочу все его комбинации. вот так [A, C, B], [B, A, C], [B, A, C], [C, A, B] и [C, B, A] я попытался использовать itertools.combinations и получил все комбинации, только не те, в которых используются все буквы.

matriks = ["A","B","C"]
    combs=[]
    for i in xrange(1, len(matriks)+1):
    els = [list(x) for x in itertools.combinations(matriks, i)]
    combs.append(els)
print(combs)

это дает следующий результат

[[['A'], ['B'], ['C']], [['A', 'B'], ['A', 'C'], ['B', 'C']], [['A', 'B', 'C']]]

person Becktor    schedule 13.01.2014    source источник
comment
комбинации и перестановки - разные вещи. Похоже, вы хотите последнего.   -  person Wooble    schedule 13.01.2014
comment
да не знал слова. Перестановки - это то, что я хотел   -  person Becktor    schedule 13.01.2014


Ответы (1)


Вы можете просто использовать itertools.permutations:

>>> from itertools import permutations
>>> 
>>> l = ["A","B","C"]
>>> 
>>> list(permutations(l))
[('A', 'B', 'C'), ('A', 'C', 'B'), ('B', 'A', 'C'), ('B', 'C', 'A'), ('C', 'A', 'B'), ('C', 'B', 'A')]
person arshajii    schedule 13.01.2014