import random
def generate_distinct_digit_numbers(N, L):
results = set() # store unique valid numbers
lower = 10**(L-1) # smallest L‑digit number (e.g., 10000 for L=5)
upper = 10**L - 1 # largest L‑digit number (e.g., 99999 for L=5)
# keep generating until we have N distinct-digit numbers
while len(results) < N:
num = random.randint(lower, upper) # generate a random L‑digit integer
s = str(num) # convert number to string for digit checking
# check if all digits are unique by comparing length with the size of the set
if len(set(s)) == L:
results.add(num) # add to set (ensures no duplicates)
return list(results) # convert set to list for final output
print(generate_distinct_digit_numbers(10, 6))
'''
run
[527136, 180357, 680549, 601482, 745163, 325491, 521079, 467032, 631097, 210974]
'''