General Brazilian
astuto, malandro, velhaco
astuto is most common; malandro implies clever deception
Rio de Janeiro
malandro, safo
malandro frequently used for cunning or streetwise behavior
São Paulo
astuto, safo
astuto preferred in formal contexts
Portugal
astuto, velhaco, ardiloso
velhaco emphasizes deviousness; ardiloso emphasizes cunning