logo

itertools.combinations()-modulen i Python för att skriva ut alla möjliga kombinationer

Givet en array av storlek n, generera och skriv ut alla möjliga kombinationer av r element i array. Exempel:

Input : arr[] = [1, 2, 3, 4], r = 2 Output : [(1, 2), (1, 3), (1, 4), (2, 3), (2, 4), (3, 4)]>

Rekommenderas: Vänligen pröva ditt tillvägagångssätt {går} först innan du går vidare till lösningen.

Detta problem har en befintlig rekursiv lösning, se Skriv ut alla möjliga kombinationer av r element i en given array med storlek n länk. Vi kommer att lösa detta problem i python med hjälp av itertools.combinations() modul.



Vad gör itertools.combinations()?

Den returnerar r-längdssubsekvenser av element från indata iterable. Kombinationer sänds ut i lexikografisk sorteringsordning. Så om den iterbara ingången är sorterad, kommer kombinationstuplarna att produceras i sorterad ordning.

    itertools.combinations(iterable, r): Den returnerar tupler med r-längd i sorterad ordning utan upprepade element. Till exempel, kombinationer(‘ABCD’, 2) ==> [AB, AC, AD, BC, BD, CD]. itertools.combinations_with_replacement(iterable, r) : Den returnerar r-längds tupler i sorterad ordning med upprepade element. Till exempel, kombinationer_med_ersättning('ABCD', 2) ==> [AA, AB, AC, AD, BB, BC, BD, CC, CD, DD].

Python3








# Function which returns subset or r length from n> from> itertools>import> combinations> def> rSubset(arr, r):> ># return list of all subsets of length r> ># to deal with duplicate subsets use> ># set(list(combinations(arr, r)))> >return> list>(combinations(arr, r))> # Driver Function> if> __name__>=>=> '__main__'>:> >arr>=> [>1>,>2>,>3>,>4>]> >r>=> 2> >print> (rSubset(arr, r))>

>

>

Produktion

[(1, 2), (1, 3), (1, 4), (2, 3), (2, 4), (3, 4)]>