The rules are that you can only build from an existing part, so in the example below, B is the only option for the first move = A.
A mechanical assembly might be represented as follows:
E
|
C
|
A-B
|
D
|
F
Where the valid assembly paths when starting from A are:
A, B, C, E, D, F
A, B, C, D, E, F
A, B, C, D, F, E
A, B, D, F, C, E
A, B, D, C, F, E
A, B, D, C, E, F
This is a fairly simple example, but providing an upper bound for an arbitrary assembly is difficult since it's related to the "connectivity" of the parts.
n! would be an absolute upper bound I guess, but I'm hopping to find something a little better.
I've also looked at representing the graph with the parts (A, B, C, etc) as the edges and doing Kirchhoff's theorem, but that doesn't work for sparsely connected graphs like the example above.
Any information about the problem would help. I'm not sure if there's a formal description of this type of problem or not.