a = [1,5,3,8,2,4,7,6]
a = sorted(a,reverse=True)
There is no way to improve these lines. You need to transform your data by sorting it, without any sense of changing what you have done.
from itertools import izip, starmap
from operator import sub
list(starmap(sub,izip(a,a[1:])))
Out[12]: [1, 1, 1, 1, 1, 1, 1]
If areally massive, you can replace the fragment a[1:]with isliceto save memory overhead:
list(starmap(sub,izip(a,islice(a,1,None))))
Although, if this is true, you should probably use it numpy.
np.diff(a) * -1
Out[24]: array([1, 1, 1, 1, 1, 1, 1])