So I assume you want to show 3 numbers and have the user enter those three numbers to be authenticated. I won't write your whole program for you, but here are some tips that hopefully, together, will lead you to an answer.
You have a problem with your code in putting the 3 numbers into a set. If the three calls to randint happen to produce matching numbers, your set will have fewer than three numbers in it because sets can't contain duplicates. So I'd use a list, assuming that you want the user to always enter 3 numbers even if two (or three) of them happen to be the same.
To have the user enter the three numbers that result in a list of ints, you could use this statement:
verans0 = [int(i) for i in re.split(r'[^\d]+', input('Type the above numbers here: '))]
This will pick integers separated by any non-digit characters into an array of ints. There is one case that will break this, and that is entering a string with no digits in it. That will lead to trying to parse a non-integer string. I'll leave that to you to fix through a preflight of the input. You also might want to play with what delimiters you allow, like just whitespace, or whitespace and commas, or whatever.
To verify the input, I'd loop over the input array and for each number input:
- confirm that it's in the verans2 list. If it isn't, the
authentication failed
- if the number is in verans2, remove it (just one copy of it if there are duplicates) from that list
If you make it through the list without a mismatch, check to see if the verans2 list is empty. If it isn't, then the user failed to enter all the digits, and the authentication failed. If it is empty, then you have a successful authentication.