Наивный подход состоит в том, чтобы просто сгенерировать каждую возможную комбинацию чисел и посмотреть, соответствуют ли они целевому числу.
Излишне говорить, что это ужасная сложность времени. Но это делает работу для небольших списков.
РЕДАКТИРОВАТЬ: На самом деле, если вы разрешаете повторные номера, это не работает. Альтернативный алгоритм (который допускает повторы, но не любые отрицательные значения) состоит в том, чтобы в основном продолжать добавлять наибольшее число в списке, а затем возвращаться назад, если вы перешли цель.