однолинейное решение с использованием groupy
from itertools import groupby
text='1100111101100001'
sol = [''.join(group) for key, group in groupby(text)]
print(sol)
выход
['11', '00', '1111', '0', '11', '0000', '1']
не решение регулярных выражений, а улучшение кода ur
str1='110011110110000'
def func(string):
tmp = string[0]
res =[]
for i, v in enumerate(string, 1):
if v==tmp[-1]:
tmp+=v
else:
res.append(tmp)
tmp=v
res.append(tmp)
return res
print(func(str1))
выход
['111', '00', '1111', '0', '11', '0000']