itertools.permutations() în Python

Modulul itertools Python 3.0+

Toate aranjamentele posibile ale elementelor, în care ordinea contează.

Sintaxă
itertools.permutations(iterabil, r=None)

Ce face itertools.permutations()

permutations(colectie, r) produce toate tuplurile de lungime r formate din elemente diferite ale colecției, în toate ordinile posibile. Fără r, folosește toate elementele (permutări complete).

Elementele sunt considerate diferite după poziție, nu după valoare: o colecție cu valori repetate produce rezultate repetate. Numărul de rezultate este math.perm(n, r).

Parametri

Parametru Descriere
iterabil Elementele.
r Opțional. Lungimea fiecărui aranjament.

Ce returnează

Un iterator de tupluri.

Exemple

Exemplul 1: Ordinea de pe podium

from itertools import permutations
import math
concurenti = ["Ana", "Dan", "Ioana"]
for podium in permutations(concurenti, 2):
    print(podium)
print(len(list(permutations(range(5)))), math.perm(5))
print(["".join(p) for p in permutations("aab")])

Rezultat

('Ana', 'Dan')
('Ana', 'Ioana')
('Dan', 'Ana')
('Dan', 'Ioana')
('Ioana', 'Ana')
('Ioana', 'Dan')
120 120
['aab', 'aba', 'aab', 'aba', 'baa', 'baa']

Greșeli frecvente

  • Generezi permutările unei liste de 12 elemente sau mai mult. Sunt sute de milioane; gândește un algoritm care nu le încearcă pe toate.

Comenzi înrudite