liPos = [(2, 5), (8, 9), (18, 22)]
s = 'I hope that I will find an answer to my question!'
exclusions = set().union(*(set(range(t[0], t[1] + 1)) for t in liPos))
pruned = ''.join(c for i, c in enumerate(s) if i not in exclusions)
print(pruned)
нарезка строки python со списком