s = (input("Число: "))
n,k,nom = [],[], 0
for i in range(1,5):
n.append(s[i-1:i+4])
k.append(min(n[i-1][nom:i+4]))
nom = n[i-1].find(min(n[i-1]))
print(''.join(k))
Суть алгоритма: программа вычисляет минимальное четырехзначное число из восьмизначного числа, которое в свою очередь состоит из цифр 1,2,3. Цифры четырехзначного могут не стоять рядом, но должны идти по-порядку.
1 число четырехзначного может стоять в диапазоне от 1 до 5 знака в восьмизначном, остальные со смещением 1 от предыдущего. Программа вычисляет минимальное в первом срезе и записывает его в список, далее от номера этого минимального начинает искать в следующем срезе.
Пример: 12312321
Ответ: 1121