Use this if you are using igraph from R
| all_simple_paths {igraph} | R Documentation | 
This function lists are simple paths from one source vertex to another vertex or vertices. A path is simple if the vertices it visits are not visited more than once.
all_simple_paths(
  graph,
  from,
  to = V(graph),
  mode = c("out", "in", "all", "total"),
  cutoff = -1
)
graph | 
 The input graph.  | 
from | 
 The source vertex.  | 
to | 
 The target vertex of vertices. Defaults to all vertices.  | 
mode | 
 Character constant, gives whether the shortest paths to or
from the given vertices should be calculated for directed graphs. If
  | 
cutoff | 
 Maximum length of path that is considered. If negative, paths of all lengths are considered.  | 
Note that potentially there are exponentially many paths between two vertices of a graph, and you may run out of memory when using this function, if your graph is lattice-like.
This function currently ignored multiple and loop edges.
A list of integer vectors, each integer vector is a path from the source vertex to one of the target vertices. A path is given by its vertex ids.
g <- make_ring(10)
all_simple_paths(g, 1, 5)
all_simple_paths(g, 1, c(3,5))