anagram - アナグラム (Anagram)
計算自体は数学でも見る問題だが,実装が破滅したので,こちらを参考に
from collections import Counter from math import factorial from sys import stdin input = stdin.readline s = list(input().strip()) def comb(x): cal = factorial(len(x)) for i in Counter(x).values(): cal //= factorial(i) #同じ文字が複数個,存在するならその数の階乗で割る return cal ans = 0 for i, j in enumerate(s): used = set() for k, l in enumerate(s[i:], start = i): if (l < j) and (l not in used): ans += comb(s[i: k] + s[k + 1:]) #k番目を除いた順列 used.add(l) print(ans + 1) #自分よりも前にans個あるので+1