Generate a set of sorted random numbers from a specific range
Question: I'd like to generate a set of x unique random numbers and sort them in Python.
For example: range(1000, 10000) x = 100

I've figured out to import random and use the random.randrange method, then
loop to get 100 random numbers and in the end sort them.

However, I don't know how to get unique numbers (such that they do not repeat)
- should I validate each and every loop? Or is there any other easier way how
to do it? And how should I sort them?

Thanks y'all!


Answer: Use
[`random.sample`](http://docs.python.org/3/library/random.html#random.sample)

    
    
    numbers = random.sample(xrange(1000, 10000), 100)  # or `range` in Python 3
    

The sorting part is easy - use the
[`list.sort`](http://docs.python.org/3/library/stdtypes.html#list.sort)
method.

    
    
    numbers.sort()
    

By default this will sort it from smallest number to largest, but it takes an
optional `key` argument which determines what to sort it on.

There is also a
[`sorted`](http://docs.python.org/3/library/functions.html#sorted) function
which doesn't modify a list in-place, but rather returns a sorted list.

    
    
    numbers_sorted = sorted(numbers)
    

This also has an optional `key` argument.

