Вы используете python 2.x или 3.0?
Если вы используете 2.x, попробуйте сделать строку регулярного выражения escape-строкой Unicode с 'u'. Поскольку это регулярное выражение, рекомендуется сделать строку регулярного выражения необработанной строкой с 'r'. Также излишне помещать весь узор в круглые скобки.
re.sub(ur'[\u064B-\u0652\u06D4\u0670\u0674\u06D5-\u06ED]+', '', ...)
http://docs.python.org/tutorial/introduction.html#unicode-strings
Редактировать:
Также рекомендуется использовать флаг re.UNICODE / re.U / (? U) для регулярных выражений Unicode, но он влияет только на псевдонимы классов символов, такие как \ w или \ b, из которых этот шаблон не использует ни одного и поэтому не будет быть затронутым.
u
иr
префиксы. Это круто!