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))
aW1wb3J0IHJlCgpzdHJpbmdzID0gWwogICAgJ2FiY2QxLTIgNGQ0ZScsCiAgICAneHl6MC0xIDU1MScsCiAgICAnZm9vIDNlYScsCiAgICAnYmFyMSAyYmQnLAogICAgJ21jLW1xaXNkMC0yIDc3YScKXQoKZGVmIGxpc3RGbG4obGlzdEEpOgogICAgZGN0ID0ge30KICAgIGZvciBzIGluIGxpc3RBOgogICAgICAgIGxzdCA9IHN1bShyZS5maW5kYWxsKHIiXihcUyo/KSg/OihcZCspLShcZCspKT9ccysoLiopIiwgcyksICgpKQogICAgICAgIGlmIGxzdCBhbmQgbHN0WzJdOgogICAgICAgICAgICBmb3IgaSBpbiByYW5nZShpbnQobHN0WzFdKSwgaW50KGxzdFsyXSkgKyAxKToKICAgICAgICAgICAgICAgIGRjdFtsc3RbMF0gKyBzdHIoaSldID0gbHN0WzNdCiAgICAgICAgZWxzZToKICAgICAgICAgICAgZGN0W2xzdFswXV0gPSBsc3RbM10KICAgIHJldHVybiBkY3QKCgpwcmludChsaXN0RmxuKHN0cmluZ3MpKQ==
{'abcd1': '4d4e', 'abcd2': '4d4e', 'xyz0': '551', 'xyz1': '551', 'foo': '3ea', 'bar1': '2bd', 'mc-mqisd0': '77a', 'mc-mqisd1': '77a', 'mc-mqisd2': '77a'}