using System.Collections.Generic;
public static void Main()
var binaryString = "1100110010";
var substrings = GetSubstringsFrom(binaryString);
Console.WriteLine(string.Join(Environment.NewLine, substrings));
private static IEnumerable<string> GetSubstringsFrom(string source)
for (var i = 0; i < source.Length - 1; i++)
var equalDigitCount = source
.TakeWhile(letter => letter == source[i])
var totalDigitCount = 2 * equalDigitCount;
if (i + totalDigitCount > source.Length)
var remainingDigits = source
.Skip(i + equalDigitCount)
if (remainingDigits.Distinct().Count() > 1)
yield return source.Substring(i, totalDigitCount);