Let the cable lengths be distinct positive integers $l_1 \lt l_2 \lt \ldots \lt l_n$ for $n \approx 25$. Let $t; s_{l_1}, s_{l_2}, \ldots, s_{l_n}$ be formal variables. The monomials in the formal series expansion of
$$\prod_{i=1}^n \frac{1}{1 - s_{l_i} t^{l_i}} = \prod_{i=1}^n \left(1 + s_{l_i} t^{l_i} + s_{l_i}^2 t^{2l_i} + \cdots\right)$$
are of the form $t^k s_{l_1}^{k_1}s_{l_2}^{k_2}\cdots s_{l_n}^{k_n}$ where $k = k_1 l_1 + k_2 l_2 + \cdots + k_n l_n$. Each such monomial encodes one distinct way in which $k_1$ cables of length $l_1$, $k_2$ cables of length $l_2$, ..., and $k_n$ cables of length $l_n$ can be combined to form a length of $k$. Thus, if we ignore all powers of $t$ less than the targeted cable length (call it $N$), the lowest remaining power $\hat{N}$ tells us how close we can come to equalling or exceeding $N$ with a combination of cables and its coefficient, which is a polynomial in the $s_{l_i}$, describes all the distinct ways of attaining $\hat{N}$. Among these ways we would choose a monomial of smallest total degree (in the $s_{l_i}$).
For instance, consider the $25$ (randomly selected) lengths $$\{12,25,30,32,37,54,68,69,102,106,111,112,115,122,\\128,129,130,144,149,153,154,165,170,189,203\}.$$
We can quickly compute the power series using convolutions. Here is a Mathematica implementation. (It computes powers up to $250$ in order to find a solution for $N=220$. The $250$ can be replaced by any known upper bound on $\hat{N}$, but the smaller it is, the less work has to be done.)
f[n_Integer, m_Integer, maxPieces_: 4] := With[{k=Min[maxPieces, Ceiling[m/n]]},
1 + Sum[( Subscript[s, n] t^n)^i, {i, 1, k}] + O[t]^(m + 1)];
pieces = MonomialList[Expand[Normal[Product[f[i, 250, 3], {i, lengths}]]]]
(The definition of f includes a limit maxPieces on the number of pieces of the same size one would want to use: it expedites the calculation. It also limits the calculation to a maximum power m, because in practice powers much larger than $N$ will not be needed.)
The rest is a matter of finding $\hat{N}$ and the solution by means of sorting and inspection:
solutions = Select[pieces, Exponent[#, t] >= 220 &];
degree = Min[Exponent[#, t] & /@ solutions];
best = Select[solutions, Exponent[#, t] == degree &];
One such solution in this example is
best[[First[Ordering[Exponent[# /. Subscript[s, _] -> s, s] & /@ best]]]]
$t^{220} s_{12} s_{54} s_{154}$
indicating that $220$ feet can be attained by combining cables of $12, 54$, and $154$ feet. (The fact that we found a three-piece solution with $\hat{N}=N$ justifies limiting the expansions in the power series to just three terms; because we found a solution with no duplicated lengths, we could have limited the expansions to just the first term in each, $\prod_{i=1}^n \left(1 + s_{l_i} t^{l_i} \right)$.)
The other ways to attain $220$ can be found by inspecting the rest of best:
SortBy[best, Exponent[# /. Subscript[s, _] -> s, s] &]
$$t^{220} s_{12} s_{102} s_{106},t^{220} s_{54}^2 s_{112},t^{220} s_{37} s_{68} s_{115},t^{220} s_{30} s_{68} s_{122},t^{220} s_{37} s_{54} s_{129},t^{220} s_{30} s_{37} s_{153},
\\ t^{220} s_{12} s_{54} s_{154},t^{220} s_{25} s_{30} s_{165},t^{220} s_{25}^2 s_{170},t^{220} s_{30} s_{54} s_{68}^2,\ldots $$
Seeing these other solutions enables one to implement auxiliary objectives. For instance, if you prefer longer cables to shorter, the second solution with two $54$-foot cables and one $112$ foot cable would be best.
Total timing (as elapsed, using one 3.33 GHz Xeon core) for all these calculations was a quarter second.
If you don't want to implement symbolic convolutions of power series, you can forget about the $s_i$ and just compute the power series without them: this is a numerical convolution, which is relatively easy to code and extremely fast. The smallest power greater than or equal to $N$ is, as before, $\hat{N}$; this time its coefficient--an integer--indicates how many distinct ways these lengths can be combined to find $\hat{N}$. At this point a recursive greedy algorithm would likely work well: that is, assume the longest cable length $l_n$ will be used and recursively find the best solution for $\hat{N}-l_n$. If there is no such solution, try instead to use $l_{n-1}$, etc.