2013-08-13 7 views
15

Edit: Это не точная копия How to get all possible combinations of a list’s elements?Получить уникальные комбинации элементов из списка питона

Эта тема о поиске уникальных комбинаций, а другая тема о поиске всех комбинаций.

Если у меня есть список Python:

L = [1,2,3,4] 

, что это лучший способ, чтобы получить все возможные уникальные комбинации из 3-х элементов из списка, как показано ниже:

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

Порядок элементы в комбинациях не имеют значения. Например, "1,2,3" и "3,2,1" будут считаться одной и той же комбинацией.

Возможно, я могу написать несколько циклов, чтобы сделать это, но я думаю, что может быть однострочный, который может сделать то же самое.

ответ

25

Вам нужно 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']