def change(n, list_of_coins)
  change_helper(n, list_of_coins, [])
end

def change_helper(n, list_of_coins, result_list)
  if n == 0
    return [result_list]
  elsif list_of_coins.empty?
    return []
  else
    list_of_coins.each do |coin|
      if n < coin
        return []
      else
        return change_helper(n - coin, list_of_coins, result_list + [coin]) + change_helper(n, list_of_coins - [coin], result_list)
      end
    end
  end

end