def compute_savings_list(self, graph):
        savings_list = {}
        for i, j in graph.edges():
            if repr(i) < repr(j):
                t = (i, j)
            else:
                t = (j, i)
            if i == graph.depot() or j == graph.depot():
                continue
            savings_list[t] = graph.distance(graph.depot(), i) + graph.distance(graph.depot(), j) - graph.distance(i, j)
        sorted_savings_list = sorted(list(savings_list.items()), key=operator.itemgetter(1), reverse=True)
        return [nodes for nodes, saving in sorted_savings_list]