python随机取n个不重复的数字组成一个整数

import random
def choice_n (n):
n_ = [x for x in range(10)]
m_ = []
if n > 0:
for i in range(n):
m_=list1+list2
list1=random.sample(range(1,10),1)
list2=random.sample(range(0,10),n-1)
t = [str(x) for x in m_]
t = "".join(t)
return eval(t)
else:
return -1
print(choice_n(7))

import random
def choice_n (n):
    n_ = [x for x in range(10)]
    m_ = []
    if n > 0:
        for i in range(n):
            list1=random.sample(range(1,10),1)
            list2=random.sample(range(0,10),n-1)
            m_=list1+list2
            t = [str(x) for x in m_]
            t = "".join(t)
        return eval(t)
    else:
        return -1
print(choice_n(7))

你提供的代码改正还是有重复数字,换种思路:

import random
def choice_n(n):
    x = list(map(str,range(10)))  # 即: x = list('1234567890')
    random.shuffle(x)
    if x[0]=='0':
        x[0],x[1]=x[1],x[0]
    return int(''.join(x[:n]))

for i in range(2,11):
    for _ in range(3):
        print(choice_n(i))