*****************************************************************************
*       www.FindStat.org - The Combinatorial Statistic Finder               *
*                                                                           *
*       Copyright (C) 2019 The FindStatCrew <info@findstat.org>             *
*                                                                           *
*    This information is distributed in the hope that it will be useful,    *
*    but WITHOUT ANY WARRANTY; without even the implied warranty of         *
*    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.                   *
*****************************************************************************

-----------------------------------------------------------------------------
Statistic identifier: St001649

-----------------------------------------------------------------------------
Collection: Graphs

-----------------------------------------------------------------------------
Description: The length of a longest trail in a graph.

A trail is a sequence of distinct edges, such that two consecutive edges share a vertex.

-----------------------------------------------------------------------------
References: [1]   [[wikipedia:Path_(graph_theory)]]

-----------------------------------------------------------------------------
Code:
def statistic(G):
    def children(p):
        A = p[0][0]
        for u in G[A]:
            if (u, A) not in p and (A, u) not in p:
                yield ((u, A),) + p

        B = p[-1][1]
        for u in G[B]:
            if (u, B) not in p and (B, u) not in p:
                yield p + ((B, u),)
    if not G.edges():
        return 0
    trails = RecursivelyEnumeratedSet([(e,) for e in G.edges(labels=False)],
                                      children)
    return max(len(p) for p in trails)


-----------------------------------------------------------------------------
Statistic values:

([],0)                                                                                          => 0
([],1)                                                                                          => 0
([],2)                                                                                          => 0
([(0,1)],2)                                                                                     => 1
([],3)                                                                                          => 0
([(1,2)],3)                                                                                     => 1
([(0,2),(1,2)],3)                                                                               => 2
([(0,1),(0,2),(1,2)],3)                                                                         => 3
([],4)                                                                                          => 0
([(2,3)],4)                                                                                     => 1
([(1,3),(2,3)],4)                                                                               => 2
([(0,3),(1,3),(2,3)],4)                                                                         => 2
([(0,3),(1,2)],4)                                                                               => 1
([(0,3),(1,2),(2,3)],4)                                                                         => 3
([(1,2),(1,3),(2,3)],4)                                                                         => 3
([(0,3),(1,2),(1,3),(2,3)],4)                                                                   => 4
([(0,2),(0,3),(1,2),(1,3)],4)                                                                   => 4
([(0,2),(0,3),(1,2),(1,3),(2,3)],4)                                                             => 5
([(0,1),(0,2),(0,3),(1,2),(1,3),(2,3)],4)                                                       => 5
([],5)                                                                                          => 0
([(3,4)],5)                                                                                     => 1
([(2,4),(3,4)],5)                                                                               => 2
([(1,4),(2,4),(3,4)],5)                                                                         => 2
([(0,4),(1,4),(2,4),(3,4)],5)                                                                   => 2
([(1,4),(2,3)],5)                                                                               => 1
([(1,4),(2,3),(3,4)],5)                                                                         => 3
([(0,1),(2,4),(3,4)],5)                                                                         => 2
([(2,3),(2,4),(3,4)],5)                                                                         => 3
([(0,4),(1,4),(2,3),(3,4)],5)                                                                   => 3
([(1,4),(2,3),(2,4),(3,4)],5)                                                                   => 4
([(0,4),(1,4),(2,3),(2,4),(3,4)],5)                                                             => 5
([(1,3),(1,4),(2,3),(2,4)],5)                                                                   => 4
([(0,4),(1,2),(1,3),(2,4),(3,4)],5)                                                             => 5
([(1,3),(1,4),(2,3),(2,4),(3,4)],5)                                                             => 5
([(0,4),(1,3),(2,3),(2,4),(3,4)],5)                                                             => 4
([(0,4),(1,3),(1,4),(2,3),(2,4),(3,4)],5)                                                       => 6
([(0,3),(0,4),(1,3),(1,4),(2,3),(2,4)],5)                                                       => 6
([(0,3),(0,4),(1,3),(1,4),(2,3),(2,4),(3,4)],5)                                                 => 7
([(0,4),(1,3),(2,3),(2,4)],5)                                                                   => 4
([(0,1),(2,3),(2,4),(3,4)],5)                                                                   => 3
([(0,3),(1,2),(1,4),(2,4),(3,4)],5)                                                             => 5
([(0,3),(0,4),(1,2),(1,4),(2,4),(3,4)],5)                                                       => 6
([(0,3),(0,4),(1,2),(1,4),(2,3)],5)                                                             => 5
([(0,1),(0,4),(1,3),(2,3),(2,4),(3,4)],5)                                                       => 6
([(0,3),(0,4),(1,2),(1,4),(2,3),(2,4),(3,4)],5)                                                 => 7
([(0,4),(1,2),(1,3),(2,3),(2,4),(3,4)],5)                                                       => 5
([(1,2),(1,3),(1,4),(2,3),(2,4),(3,4)],5)                                                       => 5
([(0,4),(1,2),(1,3),(1,4),(2,3),(2,4),(3,4)],5)                                                 => 6
([(0,3),(0,4),(1,2),(1,3),(1,4),(2,3),(2,4),(3,4)],5)                                           => 8
([(0,3),(0,4),(1,2),(1,3),(1,4),(2,3),(2,4)],5)                                                 => 6
([(0,2),(0,3),(0,4),(1,2),(1,3),(1,4),(2,4),(3,4)],5)                                           => 7
([(0,2),(0,3),(0,4),(1,2),(1,3),(1,4),(2,3),(2,4),(3,4)],5)                                     => 9
([(0,1),(0,2),(0,3),(0,4),(1,2),(1,3),(1,4),(2,3),(2,4),(3,4)],5)                               => 10
([],6)                                                                                          => 0
([(4,5)],6)                                                                                     => 1
([(3,5),(4,5)],6)                                                                               => 2
([(2,5),(3,5),(4,5)],6)                                                                         => 2
([(1,5),(2,5),(3,5),(4,5)],6)                                                                   => 2
([(0,5),(1,5),(2,5),(3,5),(4,5)],6)                                                             => 2
([(2,5),(3,4)],6)                                                                               => 1
([(2,5),(3,4),(4,5)],6)                                                                         => 3
([(1,2),(3,5),(4,5)],6)                                                                         => 2
([(3,4),(3,5),(4,5)],6)                                                                         => 3
([(1,5),(2,5),(3,4),(4,5)],6)                                                                   => 3
([(0,1),(2,5),(3,5),(4,5)],6)                                                                   => 2
([(2,5),(3,4),(3,5),(4,5)],6)                                                                   => 4
([(0,5),(1,5),(2,5),(3,4),(4,5)],6)                                                             => 3
([(1,5),(2,5),(3,4),(3,5),(4,5)],6)                                                             => 5
([(0,5),(1,5),(2,5),(3,4),(3,5),(4,5)],6)                                                       => 5
([(2,4),(2,5),(3,4),(3,5)],6)                                                                   => 4
([(0,5),(1,5),(2,4),(3,4)],6)                                                                   => 2
([(1,5),(2,3),(2,4),(3,5),(4,5)],6)                                                             => 5
([(0,5),(1,5),(2,3),(3,4),(4,5)],6)                                                             => 4
([(2,4),(2,5),(3,4),(3,5),(4,5)],6)                                                             => 5
([(1,5),(2,4),(3,4),(3,5),(4,5)],6)                                                             => 4
([(0,5),(1,5),(2,4),(3,4),(4,5)],6)                                                             => 3
([(0,5),(1,5),(2,3),(2,4),(3,5),(4,5)],6)                                                       => 6
([(1,5),(2,4),(2,5),(3,4),(3,5),(4,5)],6)                                                       => 6
([(0,5),(1,5),(2,4),(3,4),(3,5),(4,5)],6)                                                       => 5
([(0,5),(1,5),(2,4),(2,5),(3,4),(3,5),(4,5)],6)                                                 => 6
([(1,4),(1,5),(2,4),(2,5),(3,4),(3,5)],6)                                                       => 6
([(0,5),(1,4),(2,4),(2,5),(3,4),(3,5)],6)                                                       => 5
([(0,5),(1,4),(1,5),(2,4),(2,5),(3,4),(3,5)],6)                                                 => 7
([(1,4),(1,5),(2,4),(2,5),(3,4),(3,5),(4,5)],6)                                                 => 7
([(0,5),(1,4),(2,4),(2,5),(3,4),(3,5),(4,5)],6)                                                 => 7
([(0,5),(1,4),(1,5),(2,4),(2,5),(3,4),(3,5),(4,5)],6)                                           => 8
([(0,4),(0,5),(1,4),(1,5),(2,4),(2,5),(3,4),(3,5)],6)                                           => 8
([(0,4),(0,5),(1,4),(1,5),(2,4),(2,5),(3,4),(3,5),(4,5)],6)                                     => 9
([(0,5),(1,4),(2,3)],6)                                                                         => 1
([(1,5),(2,4),(3,4),(3,5)],6)                                                                   => 4
([(0,1),(2,5),(3,4),(4,5)],6)                                                                   => 3
([(1,2),(3,4),(3,5),(4,5)],6)                                                                   => 3
([(0,5),(1,4),(2,3),(3,5),(4,5)],6)                                                             => 4
([(1,4),(2,3),(2,5),(3,5),(4,5)],6)                                                             => 5
([(0,1),(2,5),(3,4),(3,5),(4,5)],6)                                                             => 4
([(0,4),(1,5),(2,3),(2,5),(3,5),(4,5)],6)                                                       => 6
([(1,4),(1,5),(2,3),(2,5),(3,5),(4,5)],6)                                                       => 6
([(0,5),(1,4),(1,5),(2,3),(2,5),(3,5),(4,5)],6)                                                 => 7
([(1,4),(1,5),(2,3),(2,5),(3,4)],6)                                                             => 5
([(0,5),(1,4),(2,3),(2,4),(3,5),(4,5)],6)                                                       => 5
([(1,2),(1,5),(2,4),(3,4),(3,5),(4,5)],6)                                                       => 6
([(0,5),(1,2),(1,4),(2,3),(3,5),(4,5)],6)                                                       => 6
([(1,5),(2,3),(2,4),(3,4),(3,5),(4,5)],6)                                                       => 5
([(0,5),(1,4),(2,3),(3,4),(3,5),(4,5)],6)                                                       => 4
([(0,5),(1,2),(1,5),(2,4),(3,4),(3,5),(4,5)],6)                                                 => 7
([(0,5),(1,3),(2,4),(2,5),(3,4),(3,5),(4,5)],6)                                                 => 6
([(1,4),(1,5),(2,3),(2,5),(3,4),(3,5),(4,5)],6)                                                 => 7
([(0,5),(1,4),(1,5),(2,3),(2,5),(3,4),(3,5),(4,5)],6)                                           => 7
([(0,5),(1,4),(2,3),(2,4),(3,5)],6)                                                             => 5
([(0,1),(2,4),(2,5),(3,4),(3,5)],6)                                                             => 4
([(0,5),(1,5),(2,3),(2,4),(3,4)],6)                                                             => 3
([(0,4),(1,2),(1,3),(2,5),(3,5),(4,5)],6)                                                       => 6
([(0,4),(1,2),(1,5),(2,5),(3,4),(3,5)],6)                                                       => 6
([(0,4),(1,2),(2,5),(3,4),(3,5),(4,5)],6)                                                       => 5
([(0,1),(2,4),(2,5),(3,4),(3,5),(4,5)],6)                                                       => 5
([(0,4),(1,4),(2,3),(2,5),(3,5),(4,5)],6)                                                       => 5
([(0,3),(0,4),(1,2),(1,5),(2,5),(3,5),(4,5)],6)                                                 => 7
([(0,3),(1,4),(1,5),(2,4),(2,5),(3,5),(4,5)],6)                                                 => 7
([(0,4),(1,2),(1,5),(2,5),(3,4),(3,5),(4,5)],6)                                                 => 7
([(0,1),(0,5),(1,5),(2,4),(2,5),(3,4),(3,5),(4,5)],6)                                           => 8
([(2,3),(2,4),(2,5),(3,4),(3,5),(4,5)],6)                                                       => 5
([(0,5),(1,5),(2,3),(2,4),(3,4),(3,5),(4,5)],6)                                                 => 6
([(1,5),(2,3),(2,4),(2,5),(3,4),(3,5),(4,5)],6)                                                 => 6
([(0,5),(1,5),(2,3),(2,4),(2,5),(3,4),(3,5),(4,5)],6)                                           => 6
([(0,1),(0,5),(1,4),(2,4),(2,5),(3,4),(3,5)],6)                                                 => 7
([(0,3),(0,5),(1,3),(1,5),(2,4),(2,5),(3,4),(4,5)],6)                                           => 8
([(0,3),(1,4),(1,5),(2,4),(2,5),(3,4),(3,5),(4,5)],6)                                           => 8
([(0,5),(1,4),(1,5),(2,3),(2,4),(3,4),(3,5),(4,5)],6)                                           => 8
([(0,1),(0,5),(1,4),(2,4),(2,5),(3,4),(3,5),(4,5)],6)                                           => 8
([(0,4),(0,5),(1,4),(1,5),(2,3),(2,5),(3,4),(3,5),(4,5)],6)                                     => 9
([(0,5),(1,4),(1,5),(2,3),(2,4),(2,5),(3,4),(3,5)],6)                                           => 7
([(1,4),(1,5),(2,3),(2,4),(2,5),(3,4),(3,5),(4,5)],6)                                           => 8
([(0,5),(1,4),(2,3),(2,4),(2,5),(3,4),(3,5),(4,5)],6)                                           => 7
([(0,5),(1,4),(1,5),(2,3),(2,4),(2,5),(3,4),(3,5),(4,5)],6)                                     => 8
([(0,4),(0,5),(1,4),(1,5),(2,3),(2,4),(2,5),(3,4),(3,5)],6)                                     => 9
([(0,4),(0,5),(1,4),(1,5),(2,3),(2,4),(2,5),(3,4),(3,5),(4,5)],6)                               => 9
([(0,5),(1,3),(1,4),(2,3),(2,4),(3,5),(4,5)],6)                                                 => 6
([(1,4),(1,5),(2,3),(2,4),(2,5),(3,4),(3,5)],6)                                                 => 6
([(0,5),(1,3),(1,4),(2,3),(2,4),(2,5),(3,5),(4,5)],6)                                           => 7
([(1,3),(1,4),(1,5),(2,3),(2,4),(2,5),(3,5),(4,5)],6)                                           => 7
([(0,5),(1,3),(1,4),(1,5),(2,3),(2,4),(2,5),(3,5),(4,5)],6)                                     => 7
([(0,4),(0,5),(1,2),(1,3),(2,5),(3,4)],6)                                                       => 6
([(0,3),(0,5),(1,2),(1,5),(2,4),(3,4),(4,5)],6)                                                 => 7
([(0,5),(1,2),(1,4),(2,3),(3,4),(3,5),(4,5)],6)                                                 => 6
([(0,1),(0,2),(1,5),(2,4),(3,4),(3,5),(4,5)],6)                                                 => 7
([(0,5),(1,4),(2,3),(2,4),(2,5),(3,4),(3,5)],6)                                                 => 5
([(0,5),(1,3),(1,4),(2,4),(2,5),(3,4),(3,5)],6)                                                 => 6
([(0,1),(0,5),(1,3),(2,4),(2,5),(3,4),(3,5),(4,5)],6)                                           => 8
([(0,4),(1,3),(1,5),(2,3),(2,4),(2,5),(3,5),(4,5)],6)                                           => 7
([(0,4),(0,5),(1,3),(1,5),(2,3),(2,4),(3,5),(4,5)],6)                                           => 8
([(0,4),(0,5),(1,3),(1,5),(2,3),(2,4),(2,5),(3,5),(4,5)],6)                                     => 8
([(0,4),(0,5),(1,2),(1,3),(2,4),(2,5),(3,4),(3,5)],6)                                           => 7
([(0,5),(1,2),(1,3),(1,4),(2,3),(2,4),(3,5),(4,5)],6)                                           => 6
([(0,4),(0,5),(1,2),(1,3),(1,5),(2,4),(2,5),(3,4),(3,5)],6)                                     => 8
([(0,4),(0,5),(1,2),(1,3),(2,4),(2,5),(3,4),(3,5),(4,5)],6)                                     => 9
([(0,4),(0,5),(1,2),(1,3),(1,5),(2,4),(2,5),(3,4),(3,5),(4,5)],6)                               => 9
([(0,5),(1,2),(1,3),(1,4),(2,4),(2,5),(3,4),(3,5),(4,5)],6)                                     => 8
([(1,3),(1,4),(1,5),(2,3),(2,4),(2,5),(3,4),(3,5),(4,5)],6)                                     => 9
([(0,5),(1,3),(1,4),(2,3),(2,4),(2,5),(3,4),(3,5),(4,5)],6)                                     => 9
([(0,5),(1,3),(1,4),(1,5),(2,3),(2,4),(2,5),(3,4),(3,5),(4,5)],6)                               => 9
([(0,4),(0,5),(1,2),(1,4),(2,3),(2,5),(3,4),(3,5),(4,5)],6)                                     => 9
([(0,4),(0,5),(1,3),(1,5),(2,3),(2,4),(3,4),(3,5),(4,5)],6)                                     => 9
([(0,4),(0,5),(1,3),(1,5),(2,3),(2,4),(2,5),(3,4),(3,5),(4,5)],6)                               => 10
([(0,4),(0,5),(1,3),(1,4),(1,5),(2,3),(2,4),(2,5),(3,4),(3,5),(4,5)],6)                         => 10
([(0,3),(0,4),(0,5),(1,3),(1,4),(1,5),(2,3),(2,4),(2,5)],6)                                     => 7
([(0,1),(0,2),(0,3),(1,4),(1,5),(2,4),(2,5),(3,4),(3,5),(4,5)],6)                               => 9
([(0,4),(0,5),(1,3),(1,4),(1,5),(2,3),(2,4),(2,5),(3,4),(3,5)],6)                               => 10
([(0,3),(0,4),(0,5),(1,3),(1,4),(1,5),(2,3),(2,4),(2,5),(3,5),(4,5)],6)                         => 10
([(0,3),(0,4),(0,5),(1,3),(1,4),(1,5),(2,3),(2,4),(2,5),(3,4),(3,5),(4,5)],6)                   => 10
([(0,4),(0,5),(1,2),(1,3),(2,3),(4,5)],6)                                                       => 3
([(0,2),(1,4),(1,5),(2,3),(3,4),(3,5),(4,5)],6)                                                 => 6
([(0,1),(0,5),(1,5),(2,3),(2,4),(3,4),(4,5)],6)                                                 => 7
([(0,1),(2,3),(2,4),(2,5),(3,4),(3,5),(4,5)],6)                                                 => 5
([(0,1),(0,5),(1,5),(2,3),(2,4),(3,4),(3,5),(4,5)],6)                                           => 8
([(0,1),(1,5),(2,3),(2,4),(2,5),(3,4),(3,5),(4,5)],6)                                           => 7
([(0,1),(0,5),(1,5),(2,3),(2,4),(2,5),(3,4),(3,5),(4,5)],6)                                     => 8
([(0,4),(0,5),(1,2),(1,3),(2,3),(2,5),(3,4),(4,5)],6)                                           => 7
([(0,4),(0,5),(1,2),(1,3),(1,4),(2,3),(2,5),(3,5),(4,5)],6)                                     => 8
([(0,3),(1,2),(1,4),(1,5),(2,4),(2,5),(3,4),(3,5),(4,5)],6)                                     => 8
([(0,3),(0,5),(1,2),(1,4),(2,4),(2,5),(3,4),(3,5),(4,5)],6)                                     => 9
([(0,1),(0,5),(1,4),(2,3),(2,4),(2,5),(3,4),(3,5),(4,5)],6)                                     => 9
([(0,3),(0,5),(1,2),(1,4),(1,5),(2,4),(2,5),(3,4),(3,5),(4,5)],6)                               => 9
([(0,3),(0,4),(0,5),(1,2),(1,4),(1,5),(2,4),(2,5),(3,4),(3,5)],6)                               => 9
([(0,3),(0,4),(0,5),(1,2),(1,4),(1,5),(2,4),(2,5),(3,4),(3,5),(4,5)],6)                         => 9
([(0,4),(0,5),(1,3),(1,5),(2,3),(2,4),(2,5),(3,4)],6)                                           => 7
([(0,1),(0,5),(1,4),(2,3),(2,4),(2,5),(3,4),(3,5)],6)                                           => 7
([(0,3),(0,4),(1,2),(1,4),(1,5),(2,3),(2,5),(3,5),(4,5)],6)                                     => 8
([(0,3),(0,4),(0,5),(1,2),(1,4),(1,5),(2,3),(2,5),(3,5),(4,5)],6)                               => 8
([(0,3),(0,4),(0,5),(1,2),(1,4),(1,5),(2,3),(2,5),(3,4)],6)                                     => 7
([(0,1),(0,3),(0,5),(1,2),(1,4),(2,4),(2,5),(3,4),(3,5),(4,5)],6)                               => 9
([(0,4),(0,5),(1,2),(1,3),(1,5),(2,3),(2,4),(3,4),(3,5),(4,5)],6)                               => 10
([(0,1),(0,4),(0,5),(1,3),(1,5),(2,3),(2,4),(2,5),(3,4),(3,5),(4,5)],6)                         => 10
([(0,3),(0,4),(0,5),(1,2),(1,4),(1,5),(2,3),(2,4),(2,5),(3,4),(3,5),(4,5)],6)                   => 11
([(0,2),(0,5),(1,3),(1,4),(1,5),(2,3),(2,4),(3,4),(3,5),(4,5)],6)                               => 10
([(0,4),(0,5),(1,2),(1,3),(2,3),(2,4),(2,5),(3,4),(3,5),(4,5)],6)                               => 10
([(0,4),(0,5),(1,2),(1,3),(1,5),(2,3),(2,4),(2,5),(3,4),(3,5),(4,5)],6)                         => 11
([(0,5),(1,2),(1,3),(1,4),(2,3),(2,4),(2,5),(3,4),(3,5),(4,5)],6)                               => 10
([(1,2),(1,3),(1,4),(1,5),(2,3),(2,4),(2,5),(3,4),(3,5),(4,5)],6)                               => 10
([(0,5),(1,2),(1,3),(1,4),(1,5),(2,3),(2,4),(2,5),(3,4),(3,5),(4,5)],6)                         => 11
([(0,4),(0,5),(1,2),(1,3),(1,4),(1,5),(2,3),(2,4),(2,5),(3,4),(3,5),(4,5)],6)                   => 12
([(0,3),(0,4),(0,5),(1,2),(1,3),(1,4),(1,5),(2,3),(2,4),(2,5),(3,4),(3,5),(4,5)],6)             => 12
([(0,3),(0,4),(0,5),(1,2),(1,4),(1,5),(2,3),(2,4),(2,5),(3,4),(3,5)],6)                         => 11
([(0,4),(0,5),(1,2),(1,3),(1,4),(1,5),(2,3),(2,4),(2,5),(3,4),(3,5)],6)                         => 11
([(0,1),(0,4),(0,5),(1,2),(1,3),(2,3),(2,4),(2,5),(3,4),(3,5),(4,5)],6)                         => 11
([(0,3),(0,4),(0,5),(1,2),(1,3),(1,4),(1,5),(2,3),(2,4),(2,5),(3,5),(4,5)],6)                   => 12
([(0,2),(0,3),(0,4),(0,5),(1,2),(1,3),(1,4),(1,5),(2,4),(2,5),(3,4),(3,5)],6)                   => 12
([(0,2),(0,3),(0,4),(0,5),(1,2),(1,3),(1,4),(1,5),(2,4),(2,5),(3,4),(3,5),(4,5)],6)             => 13
([(0,2),(0,3),(0,4),(0,5),(1,2),(1,3),(1,4),(1,5),(2,3),(2,4),(2,5),(3,4),(3,5),(4,5)],6)       => 13
([(0,1),(0,2),(0,3),(0,4),(0,5),(1,2),(1,3),(1,4),(1,5),(2,3),(2,4),(2,5),(3,4),(3,5),(4,5)],6) => 13

-----------------------------------------------------------------------------
Created: Nov 28, 2020 at 22:48 by Martin Rubey

-----------------------------------------------------------------------------
Last Updated: Nov 28, 2020 at 22:48 by Martin Rubey