Мы можем попробовать сделать две замены регулярных выражений:
inp = "HElloWOrld"
out = re.sub(r'([A-Z]+)([A-Z][a-z])', '\\1 \\2', inp)
out = re.sub(r'([a-z])([A-Z])', '\\1 \\2', out)
print(out)
Это печатает:
H Ello W Orld
Первый вызов заменяет заглавную букву, за которой следуют другая заглавная буква и строчная буква , Второй вызов разделяет границы между строчными и прописными буквами.