It's impossible to get only 3 correct if I understand you correctly (think about why that must be true). I can't think of a better way than just brute forcing every possibility though. Fortunately with 4 outcomes there are only 4! = 24 different ways to do the mapping.

9 of the mappings get 0 correct

8 of the mappings get 1 correct

6 of the mappings get 2 correct

1 of the mappings get 4 correct

So P(0 correct) = 9/24 and so on.

If you've ever used R here is some code to automate that for you

Code:`library(combinat) table(sapply(permn(1:4), function(x){sum(x == 1:4)}))`