# https://[Log in to view URL]

word = input()

from functools import reduce
from math import factorial


def position(s):
    n = 0
    pre = ""
    letters = sorted(list(s))
    letters_unique = sorted(list(set(letters)))
    letters_dic = dict(zip(letters_unique, [letters.count(c) for c in letters_unique]))
    j = 0
    while j < len(s):
        for x in list(letters_dic.keys()):
            tmp = pre + x
            if s[: j + 1] == tmp:
                j += 1
                if letters_dic[x] > 1:
                    letters_dic[x] -= 1
                else:
                    letters_dic.pop(x)
                pre = tmp[:]
                break
            else:
                num = factorial(len(s) - len(tmp))
                den = reduce(
                    lambda u, v: u * v,
                    [
                        factorial(letters_dic[key])
                        for key in letters_dic.keys()
                        if key != x
                    ],
                )
                den *= factorial(letters_dic[x] - 1)
                n += num // den
    return n + 1


print(position(word))

Embed on website

To embed this program on your website, copy the following code and paste it into your website's HTML: