Enumerate all maximal subset of a weighted knapsack
There might be exponentially many such maximal subsets, so there is in general no efficient way to enumerate all of them.

It's not hard to write a recursive algorithm to enumerate all subsets.  There are only two cases:


The subset doesn't contain item 1.  It consists of a maximal subset of items 2,3,... that sum to $P_\max$ or less.
The subset does contain item 1, plus a maximal subset of items 2,3,... that sum to $P_\max-v_1$ or less.


You can enumerate all subsets of the first type with a recursive call to the procedure, and enumerate all subsets of the second type with a second recursive call.  The base case: if $P_\max \le 0$ or $A$ is empty, then the only such subset is the empty set.