Simplify Nested Lists

Cases[solution, {{__Integer}..}, All]
{{{18, 11, 8}, {17, 12, 2}}, {{17, 12, 11}, {18, 8, 2}},
 {{17, 11, 8}, {18, 12, 2}}, {{18, 12, 8}, {17, 11, 2}}, 
 {{18, 12, 11}, {17, 8, 2}}, {{18, 17}, {12, 11, 8, 2}}}

If the target lists contain exactly two sublists of integers, you can also use

Partition[#, 2] & @ Cases[solution, {__Integer}, All]

Update: Few additional methods:

Level[solution, {-3}]

Fold[FlattenAt, solution, {1, 2, 2, 1}] (* inspired by cvgmt's answer *)

Fold[Delete, solution, Thread[{{1, 2, 2, 1}, 0}]]

Fold[MapAt[Splice,##]&, solution, {1, 2, 2, 1}]

It must be have an elegant way which I could not found at that moment.

solution = {{{{{18, 11, 8}, {17, 12, 2}}, {{17, 12, 11}, {18, 8, 2}}}, {{{{17, 11, 8}, {18, 12, 2}}, {{18, 12, 8}, {17, 11, 2}}}, {{18, 12, 11}, {17, 8, 2}}}}, {{18, 17}, {12, 11, 8, 2}}};
solution//TreeForm
simplified =FlattenAt[1]@
  FlattenAt[2]@FlattenAt[2]@FlattenAt[1]@solution
simplified//TreeForm

enter image description here enter image description here