Permutacje. Sprawdzenie

0

Cześć,

Mam problem z rozwiązaniem błędu jaki mi się pojawił przy tworzeniu permutacji.
Poniższy kod wypisuje:

abc
acb
bac
cba

a pomija jeszcze bca oraz cab. Już jakiś czas nad tym główkuję, jednak nie znalazłem przyczyny, dlatego proszę Was o pomoc we wskazaniu błędu.


tekst = 'abc'

tekst = list(tekst)
len_tekst = len(tekst)

def permutacja(tekst, indeks):
    if indeks < len_tekst:
        for i in range(indeks, len_tekst):
            tekst[i], tekst[indeks]  =  tekst[indeks], tekst[i]
            permutacja(tekst, i+1)
            tekst[i], tekst[indeks]  =  tekst[indeks], tekst[i]
    else: print ''.join(tekst)

permutacja(tekst, 0)
0
tekst = 'abc'
tekst = list(tekst)
len_tekst = len(tekst)

def permutacja(tekst, indeks):
    if indeks < len_tekst:
        for i in range(indeks, len_tekst):
            tekst[i], tekst[indeks]  =  tekst[indeks], tekst[i]
            permutacja(tekst, indeks+1) # indeks zamiast i
            tekst[i], tekst[indeks]  =  tekst[indeks], tekst[i]
    else: print ''.join(tekst)

permutacja(tekst, 0)
0

Dzięki

1 użytkowników online, w tym zalogowanych: 0, gości: 1