Zupełnie nie rozumiem twojego toku rozumowania.
Wydaje mi się, że powinieneś pracować na tablicy znaków a nie na liczbie. Tak naprawdę dla permutacji nie ma znaczenia czy napis zawiera cyfry, litery, czy inne znaki.
Chwilkę pogłówkowałem i wymyśliłem taką metodę:
// pseudokod
funkcja permutacja(napis_wejsciowy, wynik_posredni) {
if (napis_wejsiowy jest pusty) {
wyswietl(wynik_posredni)
return
}
for (int i=0; i< dlugosc(napis_wejsciowy); i++) {
tmp = kopia(napis_wejsciowy)
znak = tmp[i]
tmp.usun_znak(i)
permutacja(tmp, znak+wynik_posredni)
}
}
// przykład użycia
permutacja("1234", "")
W międzyczasie spróbuję to zaimplementować, żeby sprawdzić, czy ten pomysł ma prawo działać.
Edit: Działa