title: Python 3.2.2 Function Returns None on Non-Empty Variable
body: <p>I am writing a simple script to download .mp4 TEDTalks given a list of TEDTalk website links:</p>
  
  <pre><code># Run through a list of TEDTalk website links and download each
  # TEDTalk in high quality MP4
  
  import urllib.request
  
  #List of website links
  l = [
          "http://www.ted.com/index.php/talks/view/id/28",
          "http://www.ted.com/index.php/talks/view/id/29",
      ]
  
  # Function which takes the location of the string "-480p.mp4",
  # d = 1 less that location, and a string and returns the
  # full movie download link
  def findFullURL(d, e, s):
      a = s[d]
      if a != "/":
          #Subtract from d to move back another letter
          d = d - 1
          findFullURL(d, e, s)
      else:
          fullURL = "http://download.ted.com/talks/" + s[(d+1):e] + "-480p.mp4"
          #print(fullURL)
          return fullURL
  
  #Iterate through a list of links to download each movie
  def iterateList(l):
      for x in l:
          #get the HTML
          f = urllib.request.urlopen(x)
          #Convert the HTML file into a string
          s = str(f.read(), "utf-8")
          f.close()
          #Find the location in the string where the interesting bit ends
          e = s.find("-480p.mp4")
          d = e - 1
          #The problem is with this variable url:
          url = findFullURL(d, e, s)
          print("Downloading " + url)
          #TODO: Download the file
  </code></pre>
  
  <p>I am certain that the function findFullURL works.  If you uncomment the <code>print(fullURL)</code> line at the end of the <code>findFullURL</code> function, you will see it output the download link exactly as I need it.  </p>
  
  <p>However, in the <code>iterateList</code> function where I try to capture that string via <code>url = findFullURL(d, e, s)</code>, the variable url seems to take on the value <code>None</code>.  I do not understand this at all.  It should be as simple as the following example, which works when I try it in the interpreter:</p>
  
  <pre><code>def hello():
      return "Hello"
  url = hello()
  print(url)
  </code></pre>