The above answer considers the version of this problem where vertices cannot be visited multiple times. However it seems that the intention of the question is that vertices could be visited multiple times.
The number of such paths can be exponential in |V| and |E|, so they cannot be listed in polynomial time.
The problem of counting the number of such paths is equivalent to computing the $N$th power of the adjacency matrix of the graph. If $A$ is the adjacency matrix of the graph, then the value of the cell $(i, j)$ of $A^N$ is the number of $N$-length paths from vertex $i$ to vertex $j$.
While in general such paths cannot be listed in polynomial time, they however can be listed with polynomial delay (i.e. outputting a new path in polynomial time). For all lengths $k \le N$, compute by dynamic programming numbers $cnt[v][k]$, which represents the number of paths of length $k$ from the starting vertex to vertex $v$. Now such paths can be extracted by traversing this dynamic programming structure backwards. If $cnt[v][N]$ is positive, find vertex $u$ such that there is edge from $u$ to $v$, and $cnt[u][N-1]$ is positive. Extract the $N-1$ length path to $u$ recursively, add $v$ as the last vertex of the path and subtract $cnt[v][N]$ by one.