I am not sure why I am having issues getting this to work, I am new to python, but the idea feels like it should be simple. 

I have a list of tuples like:

(a,b),(b,c),(b,d),(b,a),(c,l),(d,y),(y,l)

Given a start point, lets say a, and an end point l. 

I want to make all the paths. 
(a,b,c,l)
(a,b,d,y,l)

I have made a lot of attempts and they all keep breaking with unhelpful error messages like:

```
File "<stdin>", line 20, in findAllPaths
  File "<stdin>", line 20, in findAllPaths
  File "<stdin>", line 20, in findAllPaths
  File "<stdin>", line 20, in findAllPaths
  File "<stdin>", line 20, in findAllPaths
  File "<stdin>", line 20, in findAllPaths
  File "<stdin>", line 20, in findAllPaths
  File "<stdin>", line 20, in findAllPaths
  File "<stdin>", line 20, in findAllPaths
  File "<stdin>", line 20, in findAllPaths
  File "<stdin>", line 20, in findAllPaths
  File "<stdin>", line 20, in findAllPaths
  File "<stdin>", line 20, in findAllPaths
  File "<stdin>", line 20, in findAllPaths
  File "<stdin>", line 20, in findAllPaths
  File "<stdin>", line 20, in findAllPaths
  File "<stdin>", line 20, in findAllPaths
  File "<stdin>", line 20, in findAllPaths
  File "<stdin>", line 20, in findAllPaths
  File "<stdin>", line 20, in findAllPaths
  File "<stdin>", line 20, in findAllPaths
  File "<stdin>", line 20, in findAllPaths
  File "<stdin>", line 20, in findAllPaths
  File "<stdin>", line 20, in findAllPaths
  File "<stdin>", line 20, in findAllPaths
  File "<stdin>", line 20, in findAllPaths
  File "<stdin>", line 20, in findAllPaths
  File "<stdin>", line 20, in findAllPaths
  File "<stdin>", line 20, in findAllPaths

```

Each of those methods I think is over complicated. Is there an easy python way of doing it? 

EDIT to add some clarity:

My goal is to travel the tuples to find all the different(non circular) paths to an end goal. 
So in the example I above I wanted to travel from a -> l.

So the program would check all 'a' connections to and make the new tuples above. 

So the program will take all the paths it can until it finds l, if it runs out of paths and doesn't find the location it should return an empty list.

Lastly, a->b and b-> a, but that will create a cycle that we ant to ignore.