detail.chiebukuro.yahoo.co.jp
def perm(head, rest):
if len(rest) == 0:
return [head]
else:
res = []
data = sorted(set(rest))
for i in data:
restx = rest[:]
restx.remove(i)
headx = head + [i]
res += perm(headx, restx)
return res
pattern = perm([], [[i for i in 'YOKOHAMA']])
print(len(pattern))
"""
c2 = 0
for i in pattern:
for j in i[1::2]:
if j != 'O' and j != 'A':
break
else:
c2 += 1
print(c2)
"""
data = [i for i in pattern if not set(i[1::2]) - set(['A', 'O'])]
print(len(data))
data = [i for i in pattern if 'OO' not in ''.join(i)]
print(len(data))
data = [i for i in pattern if i.index('Y') < i.index('K') < i.index('H') < i.index('M')]
print(len(data))