XXX = range(4)

print [i for i in XXX]
print
print [i for i in (1,2,3,4,)]
print
print [i for i in [1,2,3,4,]]
print
print [(i,1) for i in XXX]
print
print [i*2 for i in range(4)]
print
print [i*j for i in range(4)
       for j in range(7)]
print [i*2 for i in range(4) if i == 0 ]
print [(i,i**2) for i in range(4) if (i % 2) == 0 ]
print [i*j for i in range(4)
       if i == 2
       for j in range(7)
       if (i+i % 2) == 0 ]

seq1 = 'abc'
seq2 = (1,2,3)

[ (x,y) for x in seq1 for y in seq2 ]

def flatten1(seq):
    return [x for subseq in seq for x in subseq]

print flatten1([[0], [1,2,3], [4,5], [6,7,8,9], []])
