“Amostra maior que a população” em random.sample python

Ao criar um gerador de senhas simples para mim, notei que se eu quero que minha população seja apenas dígitos (0-9), que é um total de 10 opções, se eu quero meu comprimento acima de 10, ele não usará nenhum dos dígitos mais de uma vez e retorne o erro "amostra maior que população".

é possível manter o código, mas adicionar / reduzir linhas de código para que funcione? ou eu tenho que usar uma escolha aleatória de uso?

import string
import random

z=int(raw_input("for: \n numbers only choose 1, \n letters only choose 2, \n letters and numbers choose 3, \n for everything choose 4:"))

if z==1:
    x=string.digits
elif z==2:
    x=string.letters
elif z==3:
    x=string.letters+string.digits
elif z==4:
    x=string.letters+string.digits+string.punctuation
else:
    print "die in a fire"

y=int(raw_input("How many passwords would you like?:"))
v=int(raw_input("How long would you like the password to be?:"))

for i in range(y):
    string=""
    for n in random.sample(x,v):
        string+=n
    print string

ty

questionAnswers(2)

yourAnswerToTheQuestion