tema
1. Ingrese la lista ['a', 'b', 'c'], genere la matriz completa de elementos de la lista: [['a', 'b', 'c'], ['a', 'c' , 'b'], ['b', 'a', 'c'], ['b', 'c', 'a'], ['c', 'a', 'b'], [' c', 'b', 'a']].
2. Cuando haya elementos duplicados en la lista, la combinación con el mismo elemento se eliminará del resultado.
Por ejemplo: entrada ['a', 'b', 'b'], salida [['a', 'b', 'b'], ['b', 'a', 'b'], [' b ', 'b', 'a']]
1. Código
def all_pailie(S):
if len(S) <= 1:
return [S]
ls = []
for i in range(len(S)):
for j in all_pailie(S[0:i] + S[i+1:]):
ls.append([S[i]] + j)
return ls
print(all_pailie(['a','b','c']))
2. Código
def all_pailie(S):
if len(S) <= 1:
return [S]
ls = []
for i in range(len(S)):
for j in all_pailie(S[0:i] + S[i+1:]):
if ([S[i]] + j) in ls:
continue
ls.append([S[i]] + j)
return ls
print(all_pailie(['a','b','b']))
Resumir
El Código 1 da los resultados completos de permutación de diferentes elementos, y el Código 2 elimina el mismo resultado considerando elementos repetidos.