A general method for reliability evaluation of multistate network is using minimal path vectors. A minimal path (MP) vector to system state d is called a d-MP. Most reported works on generating d-MPs are for a particular d value. However, if all d-MPs for all possible integer d values are required, we need to call such methods multiple times with respect to all d values. A more efficient method is desirable to generate all d-MPs. In this paper, we develop a recursive algorithm based on breadth-first search to search for all the d-MPs for all possible d values. The relationships among d-MPs for different d levels are revealed. Each d-MP candidate can be generated by a combination of one (d-1)-MP and the vector form of one binary minimal path. Thus, we can use binary MPs as building blocks to generate 2-MP candidates, and use 2-MPs and binary MPs as building blocks to generate 3-MP candidates ... and so forth. When the d-MPs with respect to the maximum d value have been found, all the d-MPs for all possible d values are obtained. A heuristic for pre-processing the MPs is proposed to improve the efficiency of the algorithm. Through computational experiments, it is found that the proposed algorithm is more efficient than existing algorithms for finding all d-MPs for all possible d values. In addition, we show that the proposed algorithm can also be used to generate a subset of d-MPs for all or some d values given a subset of MPs. The generated subset of d-MPs can be used for lower reliability bound evaluation. (C) 2015 Elsevier Ltd. All rights reserved.