I suggest the following code to allow symbols:

```    
    temp = expr

    indices = [ l[0] for l in expr.limits ]

    for r in arg:
        if len(r) != 2:
            raise ReorderError(r, "Invalid number of arguments.")

        inda, indb = r

        if indices.count(inda) != 1:
            raise ReorderError(inda, "Ambiguous index")
        if indices.count(indb) != 1:
            raise ReorderError(indb, "Ambiguous index")

        temp = reorder_limit(temp, indices.index(inda), indices.index(indb))
```