Creating all possible unique permutations of objects with given constraints in javascript?

I have a problem related to maximising profits in an auction system.
Users are allowed to bid on 10 different items, across various rounds. In some cases, users can also bid on more than 1 item, i.e., make a combined bid on 2 or more items.

Each bid can be represented by a JSON object of the following format:

{
    "user_id": 1, 
    "item_ids": [1]
    "amount": 100
}

Where the user_id is unique identifier for the user submitting the bid, the item_ids array is the list of items that specific bid was made on, and the amount is the bid amount.

Considering there are 10 items available, and there are more than 20 users in the auction, I would like to create all possible permutation of bids with the following constraints

  1. Each item can only have 1 bid associated with it
  2. Each user must have at most one bid in the set

Once I have all possible permutations as stated above, I would like to be able to loop over all the sets, and compute the total amount for all bids in the set, and thus, select the collection of bids, which would maximise profits, given the constraints.

Any alternate methods to achieve this would also be appreciated.