Polyominoes are the two dimensional shapes made by connecting n unit squares, joined along their edges. In this paper, we propose algorithms to enumerate polyominoes for p4 tiling, i.e., those covering the plane by only 90 degrees rotations around two rotation centers. The conventional methods are basically trial and error, i.e., they repeat generating polyominoes and checking whether the shapes have been already generated. Our approach is based on the reverse search, in which we design rules to generate the next. This technique has the following two characteristics: (1) No trial and error, which implies that we can reduce the computation time. (2) No need to store already enumerated polyominoes. Thus, we can also reduce the space complexity. We also implement the algorithm and enumerate all polyominoes for p4 tiling up to n = 20.