Я вважаю, що відповідь Артема Казнатчеєва правильна, але це не дає поліноміального простору. Тож ось інший підхід, який повинен працювати трохи краще в цьому відношенні.
Використовуючи максимальний потік, можна вирішити дещо більш загальну задачу: знайти пару крайових неперехідних контурів від деяких двох вершин {s1, s2} до деяких інших вершин {t1, t2}, але не контролюючи, до якої вершини джерела підключено до якої вершини призначення.
Припустимо, у нас є графік G і вершини s1, s2, t1, t2, для яких ми хочемо перерахувати всі пари шляхів. Знайдіть одну пару шляхів P1, P2, і нехай e = (s1, v) є першим краєм на одному з цих шляхів. Тоді ми можемо розділити проблемний простір на дві підпроблеми: пари шляхів, які використовують e, такі самі, як і шляхи від {v, s2} до {t1, t2} у G-s1, і пари шляхів, які не використовують e такі ж, як і шляхи від {s1, s2} до {t1, t2} в Ge. Повторіть обидві ці подпрограми, і (щоб уникнути дублювання) повідомте про шлях лише тоді, коли ви знаходитесь внизу рекурсії.