Генерация подпоследовательностей
У меня есть строка типа «0189», для которой мне нужно сгенерировать все подпоследовательности, но порядок отдельных символов должен быть сохранен, т. Е. Здесь 9 не должно предшествовать 0, 1 или 8. Пример: 0, 018, 01, 09, 0189, 18, 19, 019 и т. Д.
Другим примером является "10292" для которых подпоследовательности будут: 1, 10, 02, 02, 09, 29, 92 и т. д. Как вы могли заметить, «02»; два раза, начиная с '2' приходит дважды в данной строке. Но опять же, такие вещи, как: 21, 01, 91 являются недействительными, так как порядок должен поддерживаться.
Любой алгоритм или псевдо-код, который может быть реализован на C / C ++, будет принят!