2013-08-13 13 views
15

Edit: Questo non è un esatto duplicato di How to get all possible combinations of a list’s elements?Get combinazioni uniche di elementi da un elenco di pitone

Questo argomento è di trovare combinazioni uniche, mentre l'altro tema è di trovare tutte le combinazioni.

Se ho una lista python:

L = [1,2,3,4] 

qual è il modo migliore per ottenere tutte le possibili combinazioni uniche di 3 elementi dalla lista come di seguito:

["1,2,3", "1,2,4", "2,3,4", "3,4,1"] 

L'ordine di gli elementi nelle combinazioni non contano. Ad esempio, "1,2,3" e "3,2,1" saranno considerati la stessa combinazione.

Probabilmente potrei scrivere alcuni loop per farlo, ma penso che potrebbe esserci un one-liner che può fare lo stesso.

risposta

25

È necessario itertools.combinations:

>>> from itertools import combinations 
>>> L = [1, 2, 3, 4] 
>>> [",".join(map(str, comb)) for comb in combinations(L, 3)] 
['1,2,3', '1,2,4', '1,3,4', '2,3,4']