Perfect use case for a static HTML+JavaScript tool page (no network connection required), since everyone and everything tends to have a browser nowadays.
For the input set of resistors, a simple regular expression matcher can parse typical formats (2R2, 2.2k) and even support precision definition, so that range arithmetic can provide an estimate on the result precision. (Two cases per resistor, for each resistor.)
As usual, the problem is the interface; here, to limit the topology you're interested in.
One option would be to let the user specify the expression using ( ) + | and R1, R2, R3, ... as needed, with all combinations of the named resistors picked from the set of values, and the few combinations closest to the desired value shown. Two in parallel and two pairs in series would be (R1|R2)+(R3|R4).
If you have N different resistances and K different resistors in the expression, it'd check NK or N!/(N-K)! = N(N-1)(N-2)⋯(N-K+2)(N-K+1) combinations, depending on whether one wants all combinations or only unique tuples.