You need some programming (iterating using for-loops etc).
Here's the generic algorithm in pseudo-code (of course the indendation is important

) .
The algorithm is for
single-leg vertical strategies (incl. CoveredCall (CC) when seen/treated as single-leg, and CashSecuredPut (CSP) etc.).
Also some other strategies can be seen/treated as single-leg (just use some creativity...

).
For (advanced) multi-leg strategies some more loops are required (but it then of course gets much more complicated).
Code:
ALGORITHM FOR FINDING THE BEST TRADE CANDIDATES:
Step-01: Clear the ResultTable (can also be an array, vector or multiset etc.)
Step-02: For all Strategies
Step-03: For all Tickers
Step-04: For all ExpDates (of this Ticker)
Step-05: For all Strikes (of this ExpDate)
Step-06: Calc some important Metrics (like PL%Month for S0, B/E% etc.)
Step-07: From the above Metrics calc a Score that is comparable with other Scores (high score means good)
Step-08: Add this result (together with all classifications) into the ResultTable
Step-09: Sort descendingly the ResultTable for the Score (not necessary if multiset used)
Step-10: Pick the Trade with the highest Score, or those Trades with the highest Scores.
Remarks:
a) With this algorithm, automatically the best trades among all ExpDates and Tickers and Strikes and Strategies will be found! :-)
b) Step-06 and Step-07 are cruical: you need to invest some time, research, and brains into them, as they are the most important core elements.
c) You need to use "normalized" Metrics (to make them comparable to and with each other). Ie. use the same "base".
For example you can't compare PL% of DTE=8 to PL% of DTE=45 --> you need to normalize to a common base, ie. calc or convert to the same time base, like PL%Monthly or PL%Annualy.