Я видел много вопросов о получении всех возможных подстрок (т.е. Смежных наборов символов), но ни один из них не генерировал все возможные строки, включая комбинации его подстрок.
Например, пусть:
x = 'abc'
Я хотел бы, чтобы результат был чем-то вроде:
['abc', 'ab', 'ac', 'bc', 'a', 'b', 'c']
Главное, что мы можем удалить несколько символов, которые не смежны в исходной строке (а также смежные).
Вот что я пробовал до сих пор:
def return_substrings(input_string):
length = len(input_string)
return [input_string[i:j + 1] for i in range(length) for j in range(i, length)]
print(return_substrings('abc'))
Однако это только удаляет наборы смежных строк из исходной строки и не возвращает элемент 'ac'
из приведенного выше примера.
Другой пример: если мы используем строку 'abcde'
, выходной список должен содержать элементы 'ace'
, 'bd'
и т.д.