Hexawise is one of several tools that could help you:
- Identify all the potential configurations for a given system
- Identify a prioritized set of permutations that maximize coverage (based on user-specified coverage objectives).
As dzieciou mentioned, and provided links to above, multiple tools can do this.
Disclaimer, I am the CEO of Hexawise.
Having said that, for what it is worth, here is how the process works:
First, identify the different possible configuration options that might exist in the system you are testing. Also, if relevant, you may want to include actions that users of the system might take, different data possibilities, etc.
Second, click on "Create Tests" or the equivalent. That will bring up a set of highly varied, prioritized permutations. In this case, the default strength is to provide the smallest possible set of scenarios that would provide you with what is known as "pairwise" or "all pairs" coverage.
Third, if you have a higher coverage goal (e.g., "all possible permutations"), you can select the appropriate coverage goal. Here, there are 6 parameters, so 6-way coverage would create a list of all 216 possible permutations.
It is worth noting that 2-way solutions will tend to find the significant majority of defects. 3-way and higher strength will tend to find very few, if any. There is a lot of literature on this topic and quite a few studies.