Python | Permutación de una string dada usando la función incorporada

Una permutación, también llamada «número de arreglo» u «orden», es un reordenamiento de los elementos de una lista ordenada S en una correspondencia uno a uno con S mismo. ¡Una string de longitud n tiene n! permutación. Ejemplos:

Input :  str = 'ABC'
Output : ABC 
         ACB 
         BAC 
         BCA 
         CAB 
         CBA

Tenemos una solución existente para este problema, consulte Permutaciones de una string dada usando el enlace STL. También podemos resolver este problema en python usando permutaciones de funciones incorporadas (iterables)

Python3

# Function to find permutations of a given string
from itertools import permutations
 
def allPermutations(str):
      
     # Get all permutations of string 'ABC'
     permList = permutations(str)
 
     # print all permutations
     for perm in list(permList):
         print (''.join(perm))
       
# Driver program
if __name__ == "__main__":
    str = 'ABC'
    allPermutations(str)
Producción:

ABC
ACB
BAC
BCA
CAB
CBA

Permutación y Combinación en Python Permutaciones de una string dada con caracteres repetidos La idea es usar el diccionario para evitar la impresión de duplicados. 

Python3

from itertools import permutations
import string
 
s = "GEEK"
a = string.ascii_letters
p = permutations(s)
 
# Create a dictionary
d = []
for i in list(p):
 
    # Print only if not in dictionary
    if (i not in d):
        d.append(i)
        print(''.join(i))
Producción:

GEEK
GEKE
GKEE
EGEK
EGKE
EEGK
EEKG
EKGE
EKEG
KGEE
KEGE
KEEG

Complejidad de tiempo: O(n!) donde n es el tamaño de la string.
Espacio Auxiliar: O(n!) 

Publicación traducida automáticamente

Artículo escrito por Shashank Mishra y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *