3 sum implementation in python 2.7
As with most of your questions, your code violates PEP8.




Don't print your output.
Since \$\text{start} = \text{exclude_index} + 1\$ you can never visit exclude_index.


Your code with the above changes make your code more readable.
But it'd be better if you:


Start using Python's standard library. Itertools can drastically improve your codes readability.
Stop relying on while so much.
Use a dictionary, it's fast, and increases readability.
sorted runs in \$O(n\log(n))\$ time.


Using itertools.combinations_with_replacement and collections.Counter you can generate all three of your numbers, still in \$O(n^2)\$ time.


Pass a sorted list to combinations_with_replacement, and generate two numbers.
Check target - i - j is in the list of numbers, and that it is greater or equal to i and j.
Group; i, j and k, in a Counter and check there is enough of each number in the original list.




import collections
import itertools

def three_sum(numbers, target):
    Counter = collections.Counter
    count = Counter(numbers)
    for i, j in itertools.combinations_with_replacement(list(sorted(count)), 2):
        k = target - i - j
        if k in count and j &lt;= k &gt;= i:
            nums = (i, j, k)
            if all(count[k] &gt;= v for k, v in Counter(nums).items()):
                yield nums