python generate random numbers without duplication code example

Example 1: generate a list of random non repeated numbers python

#This will return a list of 50 numbers selected from the range 0 to 999, without duplicates.
import random
random.sample(range(1000), 50)

Example 2: python random number generator no duplicates

import random

def random_sample(count, start, stop, step=1):
    def gen_random():
        while True:
            yield random.randrange(start, stop, step)

    def gen_n_unique(source, n):
        seen = set()
        seenadd = seen.add
        for i in (i for i in source() if i not in seen and not seenadd(i)):
            yield i
            if len(seen) == n:
                break

    return [i for i in gen_n_unique(gen_random,
                                    min(count, int(abs(stop - start) / abs(step))))]