It works for me. Just replace the sixth line with:
for i in xrange(2,max+1):
The +1 is because without it the algorithm does not check the max number the user gave.
Also:
numbers = range(2,max+1)
It doesnt really matter if you use the generator xrange, but then save all the numbers in a list anyway, so why not do it in one line.
To address the OP's clarification in the comments:
It checks 6 and 10 twice because 6 is a multiple of the primes 2 and 3 and 10 is a multiple of the primes 5 and 2. If you dont want it to do that add:
if x%i==0 and checked[x] is not True:
although it wont save you anything performance-wise..