import re

test1 = "Francisco da Sousa Rodrigues" #special split
test2 = "Emiliano Rodrigo Carrasco" #normal split
test3 = "Alberto de Francia" #special split
test4 = "Bruno Rezende" #normal split

PATTERN = re.compile(r'(?:(?:da|de|do|dos|das)\s+)?\S+')

print re.findall(PATTERN, test1)

print re.findall(PATTERN, test2)

print re.findall(PATTERN, test3)

print re.findall(PATTERN, test4)

