Я недавно видел эту проблему и действительно застрял в ее реализации.
Проблема состоит в том, чтобы генерировать все возможные алфавитно упорядоченные подстроки из заданной строки.
Меньший пример : Для строки xcv
мне необходимо сгенерировать вывод:
c cv cvx v vx x
Пример большего размера : Для строки hgrte
Мне необходимо сгенерировать следующие подстроки:
e
eg
egh
eghr
eghrt
eght
egr
egrt
egt
eh
ehr
ehrt
eht
er
ert
et
g
gh
ghr
ghrt
ght
gr
grt
gt
h
hr
hrt
ht
r
rt
t
Это моя реализация, которая не выдает желаемый вывод.
s = sorted(list(input()))
s = ''.join(s)
for i in range(len(s)):
for j in range(i+1, len(s)+1):
temp = s[i:j]
print(''.join(temp))
Это вывод моего кода:
e
eg
egh
eghr
eghrt
g
gh
ghr
ghrt
h
hr
hrt
r
rt
t
[]
Я знаю, что должен использовать возврат и рекурсию после печати eghrt
, но я действительно застрял в ее реализации. Заранее спасибо:)