The probability of an event occurring can be found by dividing the number of such particular events by the total of all possible events. In this problem the number of particular events is the number of ways 25 firms out of 88 can be awarded 25 lots such that each participating firm wins only one lot out of the two tendered for. The number of possible events is all the ways 25 lots can be awarded to 88 firms.
First, the number of ways 25 out of 88 firms can win one lot is 88C25 (nCr notation) or about 6.0314*10^21. Call this value N.
This has to be balanced against the total number of ways 25 lots can be awarded to 88 firms, including awarding two lots to one or more firms and awarding just one lot each to 25 firms. Call this value A, initially 88C25, the value of N.
There are 88 ways of awarding 2 lots to one firm only, and there are 87C23 ways of awarding the remaining 23 lots to the remaining 87 firms so that they have 1 lot each. So A becomes 88C25+88C1*87C23.
There are 88C2=3828 ways of two firms out of 88 to be awarded 2 lots each and 86C21 ways of distributing the remaining 21 lots, awarding just one lot each amongst the remaining 86 firms. This has to be added to A, so A=A+88C2*86C21. If we continue we get A=88C25+88C1*87C23+88C2*86C21+88C3*85C19+...+88Cr*(88-r)C(25-2r)+...+88C12*76C1.
Examine this series carefully and we can see that, since nCk=n!/k!(n-k)!, putting k=r and n=88:
88Cr=88!/r!(88-r)! and, putting k=25-2r and n=88-r:
(88-r)C(25-2r)=(88-r)!/(25-2r)!(63+r)!
When we multiply these together, we get 88!/(r!(25-2r)!(63+r)!).
Note that N=88C25=88!/(25!63!)=6.0314*10^21.
A=88!∑1/(r!(25-2r)!(63+r)!) for 0≤r≤12, because it has to include N (0!=1). A=2.1573*10^24 approx (this value was calculated using a spreadsheet to sum the 13 terms).
The probability of 25 firms out of 88 each receiving one lot is N÷A=6.0314/2157.3=0.002796 or 0.2796%.
Checks and corrections (if any) to follow...