indices = [2, 4, 0]
new_list = [(list2[indices.index(idx)] if idx in indices else v) for idx, v in
    enumerate(list1)]
print(new_list)
['a', 1, 'c', 3, 'e', 5, 6]
Один лайнер Python для замены индексов списка