We present a stochastic dynamic programming algorithm for determining the optimal disassembly and recovery strategy, given the disassembly tree, the process dependent quality distributions of assemblies, and the quality dependent recovery options and associated profits for assemblies. This algorithm generalizes the one proposed by Krikke et al. \\cite{Krikke98} in two ways. First, there can be multiple disassembly processes. Second, partial disassembly is allowed. Both generalizations are important for practise.