## Java SE 8, <s>71</s> 69 bytes Golfed: (a,s)->{char b=97;if(a<91)b-=32;a=b;b+=26;while(a<b)s+=a++;return s;} Ungolfed: (a,s)->{ // String as a parameter. If declaration is necessary it adds 8 bytes char b = 97; // Uppercase A char, this is important if (a < 91) // If it is not past 'z', where a is a char param b -= 32; // Then go back to the lowercase alphabet a = b; // Done to prevent a cast b += 26; // End of alphabet while (a < b) // Go to end of alphabet s += a++; // Append character return s;} // Then return I had originally implemented the following String s="";char b=96;if(a-91<0)b-=32;for(char c=b;++c<b+27;)s+=c;return s; It's more elegant but sadly it's one byte larger. This is assuming that behavior for non alpha characters is undefined and string s is initialized to "" prior to execution. Be gentle it's my first post. edit: 2 bytes saved by Stewie Griffin by changing a - 91 < 0 to a < 91