#NEWLINE# def reachable( self , initial_positions ) : #NEWLINE# #INDENT# ' Returns all reachable positions starting from a list initial positions.\n\n        Parameters\n        ----------\n        initial_positions : list(pos)\n            list of initial positions\n\n        Returns\n        -------\n        adjacency_list : generator of (pos, list(pos))\n            Generator which contains all reachable positions and their adjacencies\n        ' #NEWLINE# return ( initial_positions for it in iter_adjacencies ( initial_positions , ( lambda pos : self . legal_moves ( pos ) . values ( ) ) ) )