Make a function that receives a value, ```val``` and outputs the smallest higher number than the given value, and this number belong to a set of positive integers that have the following properties:

- their digits occur only once

- they are odd

- they are multiple of three

```python
next_numb(12) == 15

next_numb(13) == 15

next_numb(99) == 105

next_numb(999999) == 1023459

next_number(9999999999) == "There is no possible number that
fulfills those requirements"
```

Enjoy the kata!!

Difficulty: introductory

Starter code:

def next_numb(val):
	

Solutions:
def unique_digits(n):
    return len(set(str(n))) == len(str(n))

def next_numb(val):
    val += 1
    while val % 3: val += 1
    if val % 2 == 0: val += 3
    
    while not unique_digits(val):
        val += 6
        if val > 9876543210: break
    else:
        return val
    
    return "There is no possible number that fulfills those requirements"


def next_numb(val):
    val += 3 - val % 3
    if not val & 1: val += 3
    while val < 9999999999:
        s = str(val)
        if len(s) == len(set(s)):
            return val
        val += 6
    return "There is no possible number that fulfills those requirements"


DEFAULT = "There is no possible number that fulfills those requirements"

def valid(s): return len(set(s))==len(s)

def next_numb(n):
    n += 3-n%3
    if not n&1: n += 3
    return next( (n for n in range(n,9999999999,6) if valid(str(n))), DEFAULT)

def next_numb(val):
    i = val + 1
    while i <= 9999999999:
        if i % 3 == 0 and i % 2 and len(str(i)) == len(set(str(i))):
            return i
        i += 1
    return 'There is no possible number that fulfills those requirements'

from itertools import count


def next_numb(val):
    if val >= 9999999999:
        return 'There is no possible number that fulfills those requirements'
    for i in count(val + 1):
        s = str(i)
        if i % 2 == 1 and i % 3 == 0 and len(s) == len(set(s)):
            return i

from collections import Counter
def next_numb(val):
    if val >= 9876543210: return "There is no possible number that fulfills those requirements"
    x = val + 1
    if x % 3 != 0:
        x += (3 - x % 3)
    if x % 2 == 0: x += 3
    c = Counter(str(x))
    while max(c.values()) > 1:
        x += 6
        c = Counter(str(x))
    return x

def next_numb(val):
    val += 3 - val % 3
    if not val & 1: val += 3
    while val <= 9876543201:
        s = str(val)
        if len(s) == len(set(s)):
            return val
        val += 6
    return "There is no possible number that fulfills those requirements"

def next_numb(n):
    if n>9876543201:
        return "There is no possible number that fulfills those requirements"
    x=n-n%3+3
    while True:
        if x>9876543201:
            return "There is no possible number that fulfills those requirements"
        if x&1:
            a=[d for d in str(x)]
            s=list(set(a))
            if len(a)==len(s):
                return x
        x+=3