dividir la lista en dos partes que su suma más cercana entre sí

Esto es undifícil problema de algoritmos que:

Divida la lista en 2 partes (suma) que su suma más cercana (la mayoría) entre sí

la longitud de la lista es 1 <= n <= 100 y sus (números) pesan 1 <= w <= 250 dado en la pregunta.

Por ejemplo: 23 65134 32 95 123 34

1.sum = 256

2.sum = 250

1.lista = 1 2 3 7

2.lista = 4 5 6

Tengo un algoritmo pero no funcionó para todas las entradas.

en eso. listas list1 = [], list2 = []Ordenar elementos (lista dada) [23 32 34 65 95 123 134]pop último (máximo uno)inserte en la lista que difiere menos

Implementación: list1 = [], list2 = []

seleccione 134 insertar lista1. lista1 = [134]seleccione 123 insertar lista2. porque si insertas en la lista1 la diferencia aumenta
3. seleccione 95 e inserte la lista2. porque sum (list2) + 95 - sum (list1) es menor.

y así...