import re

strings = [
    'abcd1-2 4d4e',
    'xyz0-1 551',
    'foo 3ea',
    'bar1 2bd',
    'mc-mqisd0-2 77a'
]

def listFln(listA):
    dct = {}
    for s in listA:
        lst = sum(re.findall(r"^(\S*?)(?:(\d+)-(\d+))?\s+(.*)", s), ())
        if lst and lst[2]:
            for i in range(int(lst[1]), int(lst[2]) + 1):
                dct[lst[0] + str(i)] = lst[3]
        else:
            dct[lst[0]] = lst[3]
    return dct


print(listFln(strings))