Задача наверняка на слайсы.
>>> c = [1, 9, 16, 17, 28, 28, 35, 40,]
пары не пересекаются, значит бежите по це ровно лен(це) // 2 раз,
но, главное, сам це на ходу менять нельзя, т.е. надо делать це2, и через копи.копи(це)
>>> import copy
>>> c2 = copy.copy(c)
>>> i, j, i2, j2 = 0, 1, 0, 1
>>> for x in range(len(c) // 2):
... ...if c[i] < c [j]:
... ... ...c2[i2:j2] = range(c[i], c[j]) # тело иф - одна строка
... ...i2 = j2 + (c[j]-c[i])
... ...j2 = j2 + (c[j]-c[i])+1
... ...i, j = j+1, j+2
...
>> c2
[1, 2, 3, 4, 5, 6, 7, 8, 9, 16, 17, 28, 35, 36, 37, 38, 39, 35, 40]
>>> c
[1, 9, 16, 17, 28, 28, 35, 40]
>>