import re 

candis = ['mmol','mm']
test_reg = r"\d+(?=((?:\s*(?:{})-?[1-4]?){{1,3}}))\1\b".format('|'.join(candis))
test_str = '3 mmol mm 3 mmol2mm and 3 mmolmm AND NOT 3 mmol mmb'

#print(test_reg) # \d+(?:\s*(?:mmol|mm)-?[1-4]?){1,3}\b
print( [x.group() for x in re.finditer(test_reg,test_str)] )