Simulated annealing is a computational algorithm for optimization. It mimics the physical process of thermal annealing in which a metal is heated and then slowly cooled to settle into a highly ordered crystal structure. For common metals, the lowest energy state is already known. But the method is useful for other problems where the best state is not known and exhaustively searching all possible states is impractical. The method is applied by modeling the problem as a physical system with structure, energy, and temperature. This Python module implements simulated annealing so that it can be easily applied to a variety of problems. An example program is include to perform simulated annealing of the traveling salesman problem.