import random
def pailie(num):
i = len(num) - 2
while i >= 0 and num[i] >= num[i+1]: #第一步,从右往左数,找到第一个非单调递增的数
i -= 1
if i < 0: #如果不存在,此时数已经为最大
return False
j = len(num) - 1
while num[j] <= num[i]: #第二步,从右往左,找到比这个非单调递增大的最小的数(由第一步判断,第一步产生的数后面一定为单调递增,只需找到第一个大于它的数即可)
j -= 1
t = num[i] #第三步,交换两个数的位置
num[i] = num[j]
num[j] = t
num[i+1:] = num[:i:-1] #第四步,逆序
return True
if __name__ == '__main__':
num = random.sample(range(1,10),3)
num = list(sorted(num))
print(num)
while pailie(num):
print(num)