Я очень плохо знаком с Python, но похоже, что ваша проблема должна быть представлена матрицей nxn для n узлов. Пусть каждая запись в матрице представляет вес между каждым узлом в столбце для каждого узла в строке. Таким образом, вы представляете расстояние между узлами 1 и 2 с 3 в этом месте. Теперь у Python нет массивов, но вы можете сделать это с помощью списков.
После инициализации этого списка в 0, вы можете назначить что-то вроде этого:
network[1][2]=3
network[2][1]=3
network[1][4]=5
network[4][1]=5
написать операции со строками и столбцами для добавления весов, пройдя матрицу, начиная с строки узла, затем переключив строку узла с помощью столбца и повторив попытку. Если вы НЕ МОЖЕТЕ найти соединение, отличное от того, где вы были на предыдущей итерации, тогда вы находитесь в конце и вам нужно будет начать с нового узла и повторить процесс. Я сделал бы итерацию для каждой строки и распечатал бы таблицу узлов и весовых сумм. Надеюсь, что это дает вам некоторые идеи.
Надеюсь, я ответил на ваш вопрос. Я математик, но любитель Python.