以下は、「巡回セールスマン問題」アルゴリズムを使って、一連の点を取り、それらすべてを通る最短経路を返すPythonプログラムの例である：

```
from itertools import permutations

def tsp(points):
    # calculate the distance between all points
    def distance(p1, p2):
        x1, y1 = p1
        x2, y2 = p2
        return ((x1 - x2) ** 2 + (y1 - y2) ** 2) ** 0.5

    # get all possible permutations of points
    all_paths = permutations(points)

    # calculate the distance of each path and keep track of the shortest one
    shortest_path = float("inf")
    shortest_path_points = []
    for path in all_paths:
        total_distance = 0
        for i in range(len(path) - 1):
            total_distance += distance(path[i], path[i + 1])
        if total_distance < shortest_path:
            shortest_path = total_distance
            shortest_path_points = path

    return shortest_path, shortest_path_points

points = [(0, 0), (1, 2), (3, 4), (5, 6)]
shortest_path, path = tsp(points)
print("Shortest path is: " + str(path))
print("Distance: " + str(shortest_path))
```

このプログラムは "itertools "ライブラリを使って点のすべての可能な順列を生成し、カスタム距離関数を使って各点のペア間の距離を計算する。そして、各順列を繰り返し、経路の総距離を計算し、最短経路を追跡する。

クリストファイド・アルゴリズムやリン・カーニガン・アルゴリズムのような、より効率的なアルゴリズムでもTSP問題を解くことができる。
Here is an example of a Python program that takes a sequence of points and returns the shortest path that goes through them all using the "Traveling Salesman Problem" algorithm:

```
from itertools import permutations

def tsp(points):
    # calculate the distance between all points
    def distance(p1, p2):
        x1, y1 = p1
        x2, y2 = p2
        return ((x1 - x2) ** 2 + (y1 - y2) ** 2) ** 0.5

    # get all possible permutations of points
    all_paths = permutations(points)

    # calculate the distance of each path and keep track of the shortest one
    shortest_path = float("inf")
    shortest_path_points = []
    for path in all_paths:
        total_distance = 0
        for i in range(len(path) - 1):
            total_distance += distance(path[i], path[i + 1])
        if total_distance < shortest_path:
            shortest_path = total_distance
            shortest_path_points = path

    return shortest_path, shortest_path_points

points = [(0, 0), (1, 2), (3, 4), (5, 6)]
shortest_path, path = tsp(points)
print("Shortest path is: " + str(path))
print("Distance: " + str(shortest_path))
```

This program uses the "itertools" library to generate all possible permutations of the points, and uses a custom distance function to calculate the distance between each pair of points. It then iterates through each permutation, calculates the total distance of the path, and keeps track of the shortest one.

It's worth noting that this approach can be computationally expensive for large number of points, more efficient algorithm such as Christofides algorithm and Lin-Kernighan algorithm can also be used to solve the TSP problem.