minmax = [(min(v) if k else max(v)) for k, v in groupby(lst2, lambda a: a < 0)]
[abs(j - i) for i, j in zip(minmax[:-1], minmax[1:])]
Вычислять разницу каждый раз, когда знак меняется в списке значений