Паттерн (.)\1 — два одинаковых символа подряд.
(.) — захватывает любой символ в группу 1
\1 — ссылка на то, что захвачено в группе 1
s = "AABBCCXYZDD"
re.findall(r'(.)\1', s) # ['A', 'B', 'C', 'D'] — сами символы
Три и более одинаковых:
re.findall(r'(.)\1+', s) # 2+ одинаковых
re.findall(r'(.)\1{2}', s) # ровно 3 одинаковых
re.findall(r'(.)\1{2,}', s) # 3+ одинаковых
Получить всю цепочку:
s = "AAABBBCCCC"
for m in re.finditer(r'(.)\1+', s):
print(m.group(), len(m.group()))
# AAA 3
# BBB 3
# CCCC 4