Подготовка двух списков с 1000 номерами в каждом с номерами от 1 до 10 является пустой тратой памяти. Если это просто упрощение, и вы хотите использовать списки, которые вы получили в противном случае, просто замените
a,b = random.choices(range(1,11),k=2)
по
a,b = random.choice(list1), random.choice(list2)
import random
result = []
while True:
a,b = random.choices(range(1,11),k=2) # replace this one as described above
c = a*b
result.append( [a,b,c] )
if c > 50:
break
print(result)
Выход:
[[9, 3, 27], [3, 5, 15], [8, 5, 40], [5, 9, 45], [9, 3, 27], [8, 5, 40], [8, 8, 64]]
Если вам нужно 1000 случайных значений от 1 до 10, выполните:
random_nums = random.choices(range(1,11),k=1000)
это если намного быстрее, чем зацикливание и добавление одиночных целых чисел 1000 раз.
Доку: