inlist = ['fooABC', 'fooXYZ', 'barABC', 'barXYZ', 'spamABC', 'bar123',
    'spamXYZ', 'spam123']
new_inlist = []
separator = '-'
for prefix in ['foo', 'bar', 'spam']:
    for item in inlist:
        if item.startswith(prefix):
            new_inlist.append(item.replace(prefix, prefix + separator))
new_inlist.sort(key=lambda x: x.split(separator)[1])
Создать список с чередующимися значениями