from random import randrange,shuffle       
def qsort2a(lis):
    def qsort(lis):
        if lis == []: 
            return []
        else:
            ind = randrange(len(lis))
            pivot = lis[ind]
            lesser = qsort([l for i,l in enumerate(lis) if l < pivot and i!=ind])
            greater = qsort([l for i,l in enumerate(lis) if l >= pivot and i!=ind])
            return lesser + [pivot] + greater
    return qsort(lis)
        
lis = range(10) + range(5,20)
shuffle(lis)
print qsort2a(lis)
print lis