Ciao Dave!
Il tuo ragionamento è giusto, ma funziona solo se quando un valore che è presente più volte lo elimini realmente!
Controlla se la lista (o quello che è) che utilizzi sia effettivamente priva ad ogni ciclo di un carattere che è presente più volte!
Mi spiego meglio:
Avendo la parola: 'alberocll'
Quando il ciclo giungerà alla posizione 1 leggerà 'l' e la count di questa 'l' dà come risultato 3, a questo punto la elimini;
Ora la parola è diventata 'aberocll'
Quando il ciclo giungerà alla posizione 6 leggerà 'l' e la count di questa 'l' dà come risultato 2, allora elimini anche questa;
Ora la parole è diventata 'aberocl' e quindi hai finito
Il trucco sta nel ripetere la count per ogni carattere presente in posizione i e che la count stessa sia maggiore di 1!
Infine se stai adoperando il metodo .replace('lettera', '') ricorda che questo non funziona poiché ti sostituisce TUTTI i caratteri uguali a quello passato come primo parametro.
La miglior cosa sarebbe quella di convertire la chiave in lista, usare del lista[i] per rimuovere i caratteri che hanno count > 1 ed infine returnare una stringa usando il metodo ''.join(lista).
Sperando di esserti stato d'aiuto,
- Francesco Pio Scognamiglio