def next_bigger(n):
num_string = list(str(n))
for i in range(1, len(num_string)):
if i == len(num_string):
return -1
#find two the two numbers one bigger than the other with the minimun order
if num_string[-i] > num_string[-i-1]:
print(num_string[-i])
print(num_string[-i-1])
aux = num_string[-i]
#interchange the locations:
num_string[-i] = num_string[-i-1]
num_string[-i-1] = aux
# create a string from the list
return int("".join(num_string))
print(next_bigger(231))
ZGVmIG5leHRfYmlnZ2VyKG4pOgogICAgbnVtX3N0cmluZyA9IGxpc3Qoc3RyKG4pKQogICAgZm9yIGkgaW4gcmFuZ2UoMSwgbGVuKG51bV9zdHJpbmcpKToKICAgICAgICBpZiBpID09IGxlbihudW1fc3RyaW5nKToKICAgICAgICAgICAgcmV0dXJuIC0xCgogICAgICAgICNmaW5kIHR3byB0aGUgdHdvIG51bWJlcnMgb25lIGJpZ2dlciB0aGFuIHRoZSBvdGhlciB3aXRoIHRoZSBtaW5pbXVuIG9yZGVyCiAgICAgICAgaWYgbnVtX3N0cmluZ1staV0gPiBudW1fc3RyaW5nWy1pLTFdOgoKICAgICAgICAgICAgcHJpbnQobnVtX3N0cmluZ1staV0pCiAgICAgICAgICAgIHByaW50KG51bV9zdHJpbmdbLWktMV0pCgogICAgICAgICAgICBhdXggPSBudW1fc3RyaW5nWy1pXQoKICAgICAgICAgICAgI2ludGVyY2hhbmdlIHRoZSBsb2NhdGlvbnM6CiAgICAgICAgICAgIG51bV9zdHJpbmdbLWldID0gbnVtX3N0cmluZ1staS0xXQogICAgICAgICAgICBudW1fc3RyaW5nWy1pLTFdID0gYXV4CgogICAgICAgICAgICAjIGNyZWF0ZSBhIHN0cmluZyBmcm9tIHRoZSBsaXN0CiAgICAgICAgICAgIHJldHVybiBpbnQoIiIuam9pbihudW1fc3RyaW5nKSkKCnByaW50KG5leHRfYmlnZ2VyKDIzMSkp