This might be the best way:
for i := 'a'; i <= 'z'; i++ {
fmt.Println(string(i))
}
Is there a better / idiomatic approach?
for _, c := range "abcdefghijklmnopqrstuvwxyz" {
fmt.Println(string(c))
}
This question's answers will arguably be mostly opinion-based so not really a good fit for stackoverflow, yet the way you describe is indeed acceptable as an optimal solution for the lower-case english alphabet in idiomatic Go. Other alphabets will be more complicated to formulate.
Is there a better / idiomatic approach?
No.