Это на самом деле невозможно сделать в реальном регулярном выражении с количеством состояний, полиномиальных по размеру алфавита, потому что это выражение не является грамматикой уровня Хомского 0.
Однако регулярные выражения Pythonна самом деле не являются регулярными выражениями, и могут обрабатывать гораздо более сложные грамматики, чем это.В частности, вы можете поместить свою грамматику следующим образом:
(..)\1*
(..)
- это последовательность из 2 символов.\1*
соответствует точной паре символов произвольное (возможно, нулевое) количество раз.
Я интерпретировал ваш вопрос как желание, чтобы все остальные символы были равны (ababab работает, но abcbdb не удается).Если вам нужно, чтобы только 2-й, 4-й, ... символы были равны, вы можете использовать похожий.
.(.)(.\1)*