Como criar uma função de embalagem otimizada em python?

Então me foi dada a tarefa de criar um módulo de envio para um sistema de loja virtual. Pode ser um pouco exagerado, mas eu realmente gostaria de criar um que possa descobrir como empacotar as parcelas da maneira mais otimizada. Tendo aprendido programação simplesmente fazendo isso, esta é uma área onde eu não tenho conhecimento - ainda! De qualquer forma eu posso apenas dar uma breve descrição do problema real.

Assim, quando os usuários compram em lojas virtuais, eles terão x produtos em seu carrinho, com tamanhos e peso possivelmente variados. Então eu quero dar essa lista de produtos para a função e deixá-lo descobrir como esses produtos devem ser embalados em parcela (s).

comprimento máximo da parcela: 100largura máxima da parcela: 50altura máxima da parcela: 50peso máximo da parcela: 20

Cada produto tem um peso, comprimento, largura e altura também.

Como as encomendas e os produtos são basicamente caixas, acho que isso seria bastante complexo, pois há diferentes maneiras de colocar os produtos dentro da parcela. Meu objetivo não é fazer a embalagem perfeita, mas eu gostaria de fazer algo melhor do que apenas colocar produtos dentro do pacote até que um limite seja atingido.

Agora, eu não espero que vocês façam isso por mim, mas o que eu gostaria de perguntar são três coisas.

Onde posso encontrar bons recursos online que me ensinem o básico necessário?Existem algumas ferramentas nativas de python que seriam boas de usar?Alguns ponteiros do que eu preciso estar ciente, armadilhas etc

Como eu disse, eu não planejo que isso seja perfeito e 100% otimizado, mas eu gostaria de terminar com algo que se aproximará. Eu odiaria se os usuários achassem que a taxa de envio será muito maior do que a real.

questionAnswers(4)

yourAnswerToTheQuestion