GeeksforGeeks

Python proporciona métodos directos para encontrar permutaciones y combinaciones de una secuencia. Estos métodos están presentes en el paquete itertools.

Permutación

Primero importa el paquete itertools para implementar el método de permutaciones en python. Este método toma una lista como entrada y devuelve una lista de objetos de tuplas que contienen todas las permutaciones en forma de lista.

from itertools import permutations
perm = permutations()
for i in list(perm):
print (i)



Salida:

(1, 2, 3)(1, 3, 2)(2, 1, 3)(2, 3, 1)(3, 1, 2)(3, 2, 1)

Genera n! permutaciones si la longitud de la secuencia de entrada es n.

Si quieres obtener permutaciones de longitud L entonces impleméntalo de esta manera.

from itertools import permutations
perm = permutations(, 2)
for i in list(perm):
print (i)



Salida:

(1, 2)(1, 3)(2, 1)(2, 3)(3, 1)(3, 2)

Genera nCr * r! permutaciones si la longitud de la secuencia de entrada es n y el parámetro de entrada es r.

Combinación

Este método toma una lista y una entrada r como entrada y devuelve un objeto lista de tuplas que contienen todas las posibles combinaciones de longitud r en forma de lista.

from itertools import combinations
comb = combinations(, 2)
for i in list(comb):
print (i)



Salida:

(1, 2)(1, 3)(2, 3)
  1. Las combinaciones se emiten en orden lexicográfico de entrada. Así, si la lista de entrada está ordenada, las tuplas de combinación se producirán en orden ordenado.

    from itertools import combinations
    comb = combinations(, 2)
    for i in list(comb):
    print (i)

    
    

    
    

    Salida:

    (2, 1)(2, 3)(1, 3)
  2. Los elementos son tratados como únicos en función de su posición, no de su valor. Así que si los elementos de entrada son únicos, no habrá valores repetidos en cada combinación.

    from itertools import combinations
    comb = combinations(, 2)
    for i in list(comb):
    print (i)

    
    

    
    

    Salida:

    (1, 1)(1, 3)(1, 3)
  3. Si queremos hacer combinación del mismo elemento al mismo elemento entonces usamos combinaciones_con_reemplazo.

    from itertools import combinations_with_replacement
    comb = combinations_with_replacement(, 2)
    for i in list(comb):
    print (i)

    
    

    
    

    Salida:

    (1, 1)(1, 2)(1, 3)(2, 2)(2, 3)(3, 3) 
  4. Este artículo ha sido escrito por Raju Varshney. Por favor, escribe comentarios si encuentras algo incorrecto, o quieres compartir más información sobre el tema tratado

Etiquetas del artículo :
Etiquetas de la práctica :

Deja una respuesta

Tu dirección de correo electrónico no será publicada.