# Codewars

Source: codewars
You have to create a function that takes a positive integer number and returns the next bigger number formed by the same digits:

```next_bigger(12)==21
next_bigger(513)==531
next_bigger(2017)==2071
```

If no bigger number can be composed using those digits, return -1:

```next_bigger(9)==-1
next_bigger(111)==-1
next_bigger(531)==-1
```

# Testing cases

```Test.assert_equals(next_bigger(12),21)
Test.assert_equals(next_bigger(513),531)
Test.assert_equals(next_bigger(2017),2071)
Test.assert_equals(next_bigger(414),441)
Test.assert_equals(next_bigger(144),414)
```

# Martin’s Comment

Firstly when I saw this exercise first came to my mind python library for permutations which I used before. From that point it is very easy to solve, you just sort all permutations and cycle through sorted numbers and in case you find a first bigger number you return it.

# Martin’s Solution

```import itertools
def next_bigger(n):
for num in sorted([int(''.join(map(str,x))) for x in list(set(itertools.permutations([int(x) for x in str(n)])))]):
if num>n:
return num
return -1
```