Это один подход, использующий простую итерацию.
a = ['a','a','b','b','c','c']
keywords = ['a','b']
def removeDup(a, keywords):
res = []
for i in set(a):
if i in keywords:
res.extend([i]*a.count(i))
else:
res.append(i)
return res
print(removeDup(a, keywords))
Выход:
['a', 'a', 'c', 'b', 'b']
- Примечание: это может нарушить порядок вывода.