The number of spreading sequences required for Direct Sequence Code Division Multiple Access (DS-CDMA) systems depends on the number of simultaneous users on the channel. The correlation properties of the sequences used affect the bit error rate of the system. Often a sequence family provides more sequences than are required and in many cases the selection of the employed sequences is a computationally intensive task. In this paper, a branch and bound algorithm is presented to optimise the subset of available sequences given the required subset size. In contrast to previous approaches, the resulting subset is guaranteed to be optimal. Numerical results are presented to demonstrate the improved performance of this algorithm over previous work.