Попробуйте этот алгоритм:
def sort(lst):
if not lst:
return []
return (sort([x for x in lst[1:] if x < lst[0]])
+ [lst[0]] +
sort([x for x in lst[1:] if x >= lst[0]]))
word=input('enter a word: ')
print(''.join(sort(word)))
Пример вывода:
enter a word: xzy
xyz
Работает для любой длины, даже:
enter a word: rcrfr sefre erg ergergerg r
ceeeeeeffggggrrrrrrrrrs
Это будет трудно реализоватьВаш код на любую удлиненную строку
Кстати, медленный путь:
from random import shuffle
l=list(input('enter a word: '))
def is_sorted(iterable):
for a1,a2 in zip(iterable, iterable[1:]):
if a1 > a2: return False
return True
sorted_list = l
while True:
shuffle(sorted_list)
if is_sorted(sorted_list): break
print(''.join(sorted_list))