Во-первых, все увидят это как головоломку с соответствующим шаблоном, поэтому вопрос в том, почему hello
повторяется?
Если первое hello
предполагается, то простая фильтрация строки может решить проблему
s = 'hello this is hello stackoverflow hello'
l = s.split(' ')
"hello %s" % " ".join(filter (lambda a: a != 'hello', l))
'hello this is stackoverflow'
Или:
import re
s = 'hello this is hello stackoverflow hello'
re.sub('\shello\s?', ' ', s).strip()
'hello this is stackoverflow'