原问题: order of repetition does not matter您可以用总字母数减去唯一字母的数量。set应用于字符串将返回唯一的字母集合。x = "loooooveee"res = len(x) - len(set(x)) # 6或者您可以使用collections.Counter,从每个值中减去 1,然后sum:from collections import Counterc = Counter("loooooveee")res = sum(i-1 for i in c.values()) # 6新问题: repetitions must be sequential您可以使用itertools.groupby对连续的相同字符进行分组:from itertools import groupbyg = groupby("aooooaooaoo")res = sum(sum(1 for _ in j) - 1 for i, j in g) # 5为避免嵌套sum调用,您可以使用itertools.islice:from itertools import groupby, isliceg = groupby("aooooaooaoo")res = sum(1 for _, j in g for _ in islice(j, 1, None)) # 5