[Easy] Next greater number set digits

Given a number n, find the smallest number that has same set of digits as n and is greater than n. If x is the greatest possible number with its set of digits, then print “not possible”.

Input:

The first line of input contains an integer T denoting the number of test cases. The first line of each test case is n,n is the number.

Output:

Print the greater number than n with same set of digits and if not possible then print “not possible” without double quote.

Constraints:

1 ≤ T ≤ 100
1 ≤ n ≤ 100000

Example:

Input:
2
143
431

Output:
314
not possible

from itertools import permutations

def nextGreater(n):
    sortedStr = sorted(n)
    strOder = []
    idx = 0
    permList = permutations(sortedStr)
    for perm in list(permList):
        element = ''.join(perm)
        if element not in strOder:
            strOder.append(element)
    idx = strOder.index(n) + 1
    try :
        answer = strOder[idx]
    except IndexError:
        return "not possible"
    return answer

t = int(input())
for i in range(t):
    n = input()
    print(nextGreater(n))

Comments