The correct solution is 4179871
according to this.
Here is how you want to fix your code:
def check(n):
s=0
for i in xrange(1,n/2+1):
if n%i==0:
s+=i
return s>n
l=28123 # upper bound of a number that is not the sum of 2 abundant numbers
sieve=[False]*l # sieve[i] == True means i IS the sum of 2 abundant numbers
abundant=[]
for i in xrange(12,l):
if check(i):
abundant.append(i)
for i in xrange(len(abundant)): # ranges here are such that you don't forget something like 2*abundant[-1]
for j in xrange(i,len(abundant)):
if abundant[i]+abundant[j]<l:
sieve[abundant[i]+abundant[j]]=True
print sum([i for i in xrange(len(sieve)) if not(sieve[i])])