Encontrar todas las permutaciones únicas de una cadena sin generar duplicados
Encontrar todas las permutaciones de una cadena es por un conocido algoritmo Steinhaus – Johnson – Trotter. Pero si la cadena contiene los caracteres repetidos como
AABB,
then las posibles combinaciones únicas serán 4! / (2! * 2!) = 6
Una forma de lograr esto es que podemos almacenarlo en una matriz más o menos y luego eliminar los duplicados.
¿Hay alguna forma más simple de modificar el algoritmo Johnson, para que nunca generemos las permutaciones duplicadas? (De la manera más eficiente)