In this paper we propose a new framework for computing an efficient set of p-cycles which can lead to superior performance in terms of capacity utilization in network protection. We first propose an algorithm for finding all fundamental cycles. Then, the set of candidate p-cycles is constructed by merging fundamental cycles. The number of proposed candidate p-cycles is small but they can construct more straddling link and have high a priori efficiency. Finally, an ILP model is employed to select an adequate set of p-cycles to ensure 100% protection while minimizing the total spare capacity. Our numerical results show that the number of candidate p-cycles generated is less than 7% out of all possible cycles for the test networks and the solutions are close to optimal