Given an array find any three numbers which sum to zero
Your code fails this test case:

def test_winston1(self):
    res = sum_to_zero([125, 124, -100, -25])
    self.assertEqual(res, [125,-100,-25])


As for the code

def sum_to_zero(a):
    a.sort(reverse=True)


Why sort?

    len_a = len(a)
    if  len_a &lt; 3:
        return []
    for i in xrange(0, len_a):


You can just do xrange(len_a). I recommend doing for i, a_i in enumerate(a) to avoid having the index the array later.

        j = i + 1


Thar be your bug, you can't assumed that j will be i + 1.

        for k in xrange(j + 1, len_a):
            if a[j] + a[k] == -1 * a[i]:


Why this instead of a[j] + a[k] + a[i] == 0?

                return [a[i], a[j], a[k]]
    return []


Not a good a choice of return value. I'd return None. An empty list isn't a natural continuation of the other outputs. 

Here is my implementation of it:

def sum_to_zero(a):
    a.sort(reverse = True)
    for triplet in itertools.combinations(a, 3):
        if sum(triplet) == 0:
            return list(triplet)
    return []