Вы можете попробовать использовать re.sub
здесь:
inp = "2,016,549Total confirmed cases18,112Today 127,635Total deaths1,056Today 492,338Confirmed recoveries24,373Today 1,396,576Active confirmed cases51,522 (4%)Critical 21%Mortality / closed cases6%Mortality / confirmed cases 16,096,027Total tests337,502Today."
output = re.sub(r'(?<=[a-z])(\d)', ' \\1', inp, flags=re.I)
output = re.sub(r'(\d)(?=[a-z])', '\\1 ', output, flags=re.I)
print(output)
Это печатает:
2,016,549 Total confirmed cases 18,112 Today 127,635 Total deaths 1,056 Today 492,338 Confirmed recoveries 24,373 Today 1,396,576 Active confirmed cases 51,522 (4%)Critical 21%Mortality / closed cases 6%Mortality / confirmed cases 16,096,027 Total tests 337,502 Today.
Логотип замены регулярного выражения c здесь для сопоставления и захвата одного ди git, которому предшествует или предшествует соседняя буква. Если найдется совпадение, мы заменим на тот же di git вместе с дополнительным пробелом для заполнения.