Write a function that takes a number or a string and gives back the number of **permutations without repetitions** that can generated using all of its element.; more on permutations [here](https://en.wikipedia.org/wiki/Permutation).
For example, starting with:
```
1
45
115
"abc"
```
You could respectively generate:
```
1
45,54
115,151,511
"abc","acb","bac","bca","cab","cba"
```
So you should have, in turn:
```python
perms(1)==1
perms(45)==2
perms(115)==3
perms("abc")==6
```
from operator import mul
from math import factorial
from functools import reduce
from collections import Counter

def perms(inp):
    return factorial(len(str(inp))) // reduce(mul, map(factorial, Counter(str(inp)).values()), 1)
from operator import mul
from math import factorial
from functools import reduce
from collections import Counter

def perms(inp):
    return factorial(len(str(inp))) // reduce(mul, map(factorial, Counter(str(inp)).values()), 1)