There's also no need to write this as a CROSS JOIN... It's actually what Jeff would refer to as a "triangular join".
SELECT
CityName
INTO #City
FROM (VALUES ('Jax'),('Orlando'),('Miami'),('Tally'),('Appalach'),('Lake City'),('Panama City')) City (CityName)
SELECT
c1.CityName AS CityName_1,
c2.CityName AS CityName_2
FROM
#City c1
JOIN #City c2
ON c1.CityName < c2.CityName
ORDER BY-- Not needed just makes it easier to verify results
c1.CityName,
c2.CityName