Я работаю над проблемой, когда мне нужно вывести наименьшее число, большее N, состоящее из тех же цифр, что и N. Если такого числа нет, я должен вывести «0» в качестве вывода. Это код, который у меня есть на данный момент ...
n = int(input())
copy = n+1
while True:
if sorted(str(n)) == sorted(str(copy)):
print(copy)
break
else:
copy+=1
Я не могу найти способ поймать, если число не имеет таких чисел, поэтому, поэтому "0". Я думал, что блок блок «ожидаешь», но он как-то ловит бесконечные циклы. Любая идея о том, как реализовать это, или какие-либо другие предложения? Спасибо!
ОБРАЗЕЦ ВХОДА / ВЫХОДА
вход 1: 156
выход 1: 165
вход 2: 330
выход 2: 0
(ни один такой номер не удовлетворяет условию)
вход 3: 27711
выход 3: 71127