I wish to get divisors of number n as a list stored in a master list at nth position. For example the sieve of length 11, I want sieve[6] == [2,3,6] (ignoring 1). My code below does not work and surprises me in an unpleasant way:
sieve = [[]]*11
sieve[1] = [1]
for i in range(2,11):
    for j in range(i,11,i):
        sieve[j].append(i)
        print ("appended", i ," at sieve",j)
        # This check-print statement shows that it works fine until sieve is printed. 
print (sieve)
sieve[6] turns out to be : [2, 2, 2, 2, 2, 3, 3, 3, 4, 4, 5, 5, 6, 7, 8, 9, 10]
Can that be explained please?
 
     
    