Sortierte Kombinationen

Ich habe eine Eingabe wie A = [2,0,1,3,2,2,0,1,1,2,0].

Danach beseitige ich alle Duplikate durch A = list (Set (A))

A ist jetzt [0,1,2,3]. Jetzt will ich alle Paar-Kombinationen, die ich mit dieser Liste machen kann, aber sie müssen nicht einmalig sein … also [0,3] entspricht [3,0] und [2,3] entspricht [3,2] . In diesem Beispiel sollte es zurückkehren

[[0,1], [0,2], [0,3], [1,2], [1,3], [2,3]]

Wie kann ich das erreichen? Ich schaute in die iteratools lib. Aber konnte nicht mit einer Lösung kommen.

One Solution collect form web for “Sortierte Kombinationen”

>>> A = [2,0,1,3,2,2,0,1,1,2,0] >>> A = sorted(set(A)) # list(set(A)) is not usually in order >>> from itertools import combinations >>> list(combinations(A, 2)) [(0, 1), (0, 2), (0, 3), (1, 2), (1, 3), (2, 3)] >>> map(list, combinations(A, 2)) [[0, 1], [0, 2], [0, 3], [1, 2], [1, 3], [2, 3]] 

 >>> help(combinations) Help on class combinations in module itertools: class combinations(__builtin__.object) | combinations(iterable, r) --> combinations object | | Return successive r-length combinations of elements in the iterable. | | combinations(range(4), 3) --> (0,1,2), (0,1,3), (0,2,3), (1,2,3) | | Methods defined here: | | __getattribute__(...) | x.__getattribute__('name') <==> x.name | | __iter__(...) | x.__iter__() <==> iter(x) | | next(...) | x.next() -> the next value, or raise StopIteration | | ---------------------------------------------------------------------- | Data and other attributes defined here: | | __new__ = <built-in method __new__ of type object> | T.__new__(S, ...) -> a new object with type S, a subtype of T 
Python ist die beste Programmiersprache der Welt.