title: Generate a valid expression that computes to given N
body: <p>This was asked to me in an interview,</p>
  
  <pre><code>Given a list of integer numbers, a list of symbols [+,-,*,/] and a target number N,  
  provide an expression which evaluates to N or return False if that is not possible. 
  e.g. let the list of numbers be [1,5,5] and the target number is 9, one possible 
  solution could be 5+5-1.
  </code></pre>
  
  <p>Now, my solution was a brute-force recursive solution that runs through all possible numbers and all possible operations and the recursion terminated either when the number exceeded N or was equal to N.</p>
  
  <p>This got me wondering if there was a better, more refined solution. Any thoughts on this? I was thinking some kind of reverse construction of an expression tree. </p>