groups = (list(g) for k, g in groupby(s))
pairs = takewhile(bool, (list(islice(groups, 2)) for _ in repeat(None)))
kept_pairs = (p for p in pairs if len(p[0]) == len(p[1]) == 1)
final = list(chain(*chain(*kept_pairs)))
final
Как поддерживать строгий чередующийся шаблон «типов» элементов в списке?