Рассматривайте строку как список символов. Используйте filter(), чтобы отсеять лишние символы. Вот небольшой пример, как из строки убрать все символы 'b':
''.join(list(filter(lambda c: c!='b', 'abasfdbbbadfbg')))
Вместо передаваемой анонимной функции можно определить свою. Как она будет работать — решать вам. Можно сделать на основе регулярных выражений, а можно определить список запрещенных символов и возвращать что-нибудь вроде
not c in lst
.
Другой вариант (вероятно, более приемлемый) — использовать регулярные выражения и метод замены sub().