Ok, pero eso ya no son permutaciones, sino más bien particiones (o no sé bien como se llamará). De hecho en tu ejemplo con 3 elementos, el resultado no son 6 elementos, ya que tenemos
AAA, AAB, ABA, BAA, ABB, BAB, BBA, BBB
Que son 8 elementos (por eso digo que son particiones). Daría la sensación que el resultado es más bien 2^n, en lugar de n!
Que pasaría con 4 elementos (si lo que dije antes, deberían ser 16 elementos).
Aaaa, aaab, aaba, abaa, baaa, aabb, abba, bbaa, abab, baba, baab, abbb, babb, bbab, bbba, bbbb
Efectivamente son 16 elementos (salvo que veas que me faltó alguno)
Por lo que para el caso que planteas, serán 32 elementos y no 120 como dices.
No tengo el código para obtener esto, pero creo que se ve que para 5 elementos puedes agarrar los 16 elementos obtenidos antes, lo copias 2 veces, al primer rango le agregas una A (adelante o atrás) y al otro rango le agregas una B (en la misma posición que al primero). Así las variaciones para 5 elementos serían:
Aaaaa, aaaab, aaaba, aabaa, abaaa, aaabb, aabba, abbaa, aabab, ababa, abaab, aabbb, ababb, abbab, abbba, abbbb
Baaaa, baaab, baaba, babaa, bbaaa, baabb, babba, bbbaa, babab, bbaba, bbaab, babbb, bbabb, bbbab, bbbba, bbbbb
En este momento no tengo tiempo para hacer este código, pero fijate si con esto que de dije puedes avanzar (luego veré si puedo hacerme un rato de tiempo para armar este código...)
Salu2