Следующее должно делать трюк:
lst1=[1,2,3]
a=int(input())
user_input = [int(i) for i in str(a)]
for num in user_input:
if num not in lst1:
raise ValueError(f"{num} does not belong to lst1")
В качестве альтернативы, вы можете использовать set
разница:
lst1=[1,2,3]
a=int(input())
user_input = [int(i) for i in str(a)]
if len(set(user_input) - set(lst1)) > 0:
raise ValueError("...")
РЕДАКТИРОВАТЬ
Если вы хотите обрабатывать множественные пользовательские вводы, то сработает следующее:
lst1=[1,2,3]
a = input().split(' ')
user_input = [int(i) for i in a]
for _input in user_input:
for num in [int(i) for i in str(_input)]:
if num not in lst1:
print(f"{num} does not belong to lst1")
или
lst1=[1,2,3]
a = input().split(' ')
user_input = [int(i) for i in a]
for _input in user_input:
num = [int(i) for i in str(_input)]
diff = set(num) - set(lst1)
if len(diff) > 0:
print(f"The following numbers are invalid: {diff}")