Возможно так?:
>>> str1 = "fName: Vasya, sName: Petrov, Desc: worker, fName: Dina, sName: Egorova, Desc: engineer, worker"
>>> for im in zip(re.findall(r'(\w+):', str1), [x for x in re.split(r'\w+:', str1) if x]):print(im)
...
('fName', ' Vasya, ')
('sName', ' Petrov, ')
('Desc', ' worker, ')
('fName', ' Dina, ')
('sName', ' Egorova, ')
('Desc', ' engineer, worker')
либо вот ваши подстроки:
>>> for im in zip(re.findall(r'(\w+:)', str1), [x.strip() for x in re.split(r'\w+:', str1) if x]):print(' '.join(im))
...
fName: Vasya,
sName: Petrov,
Desc: worker,
fName: Dina,
sName: Egorova,
Desc: engineer, worker