Sieve of Eratosthenes solution for CodeEval
Your if statement can be moved out of the loop, if you do you need to change the range to start at 2.

A[0] = 0
A[1] = 0
for i in xrange(2, int(math.sqrt(n))):


For your other loop, we can think of the algorithm slightly differently.
You start at i ** 2, you take a step of i, and it ends on len(A) (shown by the try-except).
Or:

for j in xrange(i ** 2, n + 1, i):


As for filter you can change it to use bool or None instead of the lambda.
Alternately you can change it to a list comprehension:

return [i for i in A if i != 0]


This makes the code simple:

def factorfinder(n):
    A = range(n + 1)
    A[0] = 0
    A[1] = 0
    for i in xrange(2, int(math.sqrt(n))):
        for j in xrange(i ** 2, n + 1, i):
            A[j] = 0
    return filter(bool, A)