s = 'One two  three    tab\ttabandspace\t end'
split_combined = [''.join(g) for k, g in groupby(s, lambda c: c in special)]
split_combined
split_separated = [''.join(g) for k, g in groupby(s, lambda c: c if c in
    special else False)]
split_separated
Efficiently split a string using multiple separators and retaining each separator?