Abstract-p-Cycle is a type of shared link protection for survivable wavelength-division multiplexing (WDM) mesh networks. p-Cycle not only retains ring-like restoration speeds, but also achieves capacity efficiency in mesh networks. However, finding the optimal set of p-cycles to protect all traffic demands within a reasonable response time is difficult. This is particularity true with dense meshes or large networks, because the number of candidates is huge.Generally, p-cycles are determined by using either Integer Linear Programming (ILP) or specifically designed heuristic algorithms. However, both methods need a set of efficient candidate cycles to tradeoff between the computational time and the optimality of solutions. For this reason, constructing an efficient set of candidate p-cycles is crucial and imperative. In this paper, we propose the Span-weighted Cycle Searching (SCS) algorithm to generate and select an adequate number of p-cycles to minimize the spare capacity, while achieving 100% restorability, within low computational complexity.