Testing 21 search criteria and their combinations

Say I have a page with search function. The search function has 21 search criteria. If I want to test all combinations of criteria can be used, to calculate the number of times to test should be 21! Factorial = 51090942171709440000 times. So my question is, other than testing only the individual function of each searching criteria, how to test for the combinations of searching criteria in this case? By prioritizing only the important criteria or how?

Some example of search criteria includes,

• created time from,
• created time to,
• created by,
• updated time from,
• updated time to,
• is mapped,
• league name.
• home name,
• away name,
• system league name,
• system home name,
• system away name,
• is special,
• is ignored,
• sport type,
• is opened, etc,

user can use to search the sports game based on the criteria matched

If you had 3 search criteria A,B,C would you test A,B,C and C,B,A both with same values? Because that is what `3!` would provide you with, all possible scenarios, not all testable scenarios.
You should test a `search` function outside in, meaning:
• then create a `map` where the 21 search criteria will be plugged in to produce those search result